标题 | hta实现的笨狼树状节点查看器 |
内容 | <html> <head> <style> table { border-collapse: collapse; border-width: 4; border-style: double; border-color:#15336F; font-size:12px; } body { font-size:12px; } div { width:100%; height:9; border-style:solid; border-width:1; border-color:#eeeeee; vertical-align:top; font-size:12; cursor:hand; } </style> <title>笨狼树状节点查看器</title> </head> <body> <INPUT type="file" id=file1 name=file1>请输入xml文件路径 <INPUT type="button" value="确定" onclick = "vbs:analyse "> <SELECT id="select1" onchange="vbs:analyse"> <OPTION value="nodeName" >显示标签</OPTION> <OPTION value="text" >显示文字</OPTION> <OPTION value="attribute" >显示属性</OPTION> <OPTION value="XPath" >显示XPath</OPTION> </SELECT> <DIV id="oList" style="padding-left:0"></DIV> </body> <script language="vbScript" > '************************************** '****作者: 超级大笨狼 superdullwolf**** '************************************** public dic,favour,anything ,doc set doc = CreateObject("Microsoft.XMLDOM") doc.async=False sub analyse() dim myTR favour = select1.value removeDIV if not doc.load(file1.value) then alert "文件加载失败,请检查文件是否存在!" else Set rootNode = doc.DocumentElement set rootDIV = document.createElement("DIV") rootDIV.setAttribute "XPath",rootNode.nodeName oList.setAttribute "XPath",rootNode.nodeName oList.setAttribute "parsed",false appendDIV oList,rootNode end if end sub sub appendDIV(myDIV,myNode) dim myChild ,newDIV,ChildID,thisID ,ChildXPath for each myChild in myNode.childNodes if myChild.nodeName <> "#text" then set newDIV = document.createElement("DIV") myDIV.appendChild newDIV addPx newDIV, myDIV,10 '缩进10象素 ChildID = 0 ChildXPath = myDIV.getAttribute("XPath") & "/" & myChild.nodeName & "[" & ChildID & "]" do while not doc.selectSingleNode(ChildXPath) is myChild ChildID=ChildID+1 ChildXPath = myDIV.getAttribute("XPath") & "/" & myChild.nodeName & "[" & ChildID & "]" loop newDIV.setAttribute "XPath",ChildXPath newDIV.setAttribute "parsed",false '子元素还没标记过了。 newDIV.title = newDIV.getAttribute("XPath") newDIV.innerText = getText(myChild,newDIV) if myChild.childNodes.length>0 then newDIV.attachEvent "onclick",GetRef("attachOnclick") end if end if next myDIV.setAttribute "parsed",true'所有子元素都标记过了。 end sub sub removeDIV() dim oldDIV for each oldDIV in oList.childNodes oldDIV.removeNode(true) next end sub sub attachOnclick() dim obj ,nodeXPath,cDIV set obj=window.event.srcElement nodeXPath = obj.getAttribute("XPath") if instr(nodeXPath,"#text") >0 then window.event.cancelBubble = true exit sub end if if not obj.getAttribute("parsed")= true then appendDIV obj ,doc.selectSingleNode(nodeXPath) else for each cDIV in obj.children if cDIV.style.display = "none" then cDIV.style.display = "" else cDIV.style.display = "none" end if next end if window.event.cancelBubble = true end sub function getText(myNode,oDIV) dim myAttribute getText = "" select case favour case "text" if not isnull(myNode.text) then getText = myNode.text else getText = "空文字" end if case "nodeName" getText = myNode.nodeName case "attribute" if myNode.nodeName <>"#text" then for each myAttribute in myNode.attributes getText =getText & myAttribute.name getText = getText & "=" & chr(34) getText = getText & myAttribute.value & chr(34) & " " next getText = trim(getText) end if case "XPath" getText = oDIV.title end select if trim(getText) ="" then getText ="空" end function sub addPx(newDIV,oldDIV,num) dim re,myString set re = new RegExp re.Global = true re.Pattern = "[^\d]*" myString = re.Replace(oldDIV.style.paddingLeft, "") if myString ="" then myString = "0" myString = (cint(myString) + num ) & "px" newDIV.style.paddingLeft = myString set re = nothing end sub </script> </html> |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。