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