hta實現的笨狼樹狀節點查看器

來源:互聯網
上載者:User

<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>
XMLTool.hta

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.