⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmltool.hta

📁 XMLTools,about XML Data .
💻 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>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -