当前位置: 首页 > 图文教程 > 脚本技术 > Hta > hta实现的笨狼树状节点查看器

Hta
NCC Tools(never code counter tools) V1.0.1发布代码-代码统计工具
XMLHttps
网易手机图片自由下载器(hta)
二进制文件转换为文本工具
code collection v0.44 hta
超简陋浏览器
MyHTML Player release v1.1
ScriptomaticV2.hta学习脚本好工具
tweakomatic hta 下载
用来通知论坛有新贴子的hta代码
用hta与ajax实现的五笔字型编码查询工具
用vbs在 HTA 内对脚本进行编码的方法
用vbs如何确定在 HTA 中选择了哪些文本?
创建一个在标题栏中没有“关闭”按钮的 HTA
hta实现的涂鸦效果
使用hta保存utf8格式的文件的代码
用hta+javascript实现替换网站被下木马网页中的iframe
用hta[javascript]写的定时重启或关机的小工具
用hta实现制作的无殇 - 快书V1.1打包下载了
hta实现涂鸦效果代码

Hta 中的 hta实现的笨狼树状节点查看器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 73 ::
收藏到网摘: n/a

笨狼树状节点查看器 <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