标题 | 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> |
随便看 |
|
在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。