Dom遍历XML的一个例子,结果为树状结构

knowledge.XML文件


代码如下:

<?xml version="1.0" encoding="gb2312"?> 
<?xml:stylesheet type="text/xsl" href="knowledge.xsl"?> 
<Ebaihe name="Ebaihe" type="gs" id="gs000"> 
<知识管理 name="知识管理" type="rt" id="rt000"> 
  <目录 name="vc++" type="ml" id="ml003"/> 
  <目录 name="asp" type="ml" id="ml001"> 
     <知识 name="什么是ASP 1" type="zs" id="zs001"> 
        <title>什么是ASP</title> 
        <author>cxx</author> 
        <adddate>2001-02-20</adddate> 
        <content>ASP:Active Server Page</content> 
     </知识> 
     <知识 name="什么是ASP 2" type="zs" id="zs002"> 
        <title>什么是ASP</title> 
        <author>cxx</author> 
        <adddate>2001-02-20</adddate> 
        <content>ASP:Active Server Page</content> 
     </知识> 
  </目录> 
  <目录 name="vbs" type="ml" id="ml002"> 
     <知识 name="什么是vbs 1" type="zs" id="zs003"> 
        <title>什么是ASP</title> 
        <author>cxx</author> 
        <adddate>2001-02-20</adddate> 
        <content>ASP:Active Server Page</content> 
     </知识> 
     <知识 name="什么是vbs 2" type="zs" id="zs004"> 
        <title>什么是ASP</title> 
        <author>cxx</author> 
        <adddate>2001-02-20</adddate> 
        <content>ASP:Active Server Page</content> 
     </知识> 
  </目录> 
</知识管理> 
<留言簿 name="留言簿" type="ly" id="ly000"> 
  <单元 name="你好" type="dy" id="dy001"> 
     <留言 name="Who are you" type="zs" id="zs005"> 
        <title>什么是ASP</title> 
        <author>cxx</author> 
        <adddate>2001-02-20</adddate> 
        <content>ASP:Active Server Page</content> 
     </留言> 
     <留言 name="你好" type="zs" id="zs006"> 
        <title>什么是ASP</title> 
        <author>cxx</author> 
        <adddate>2001-02-20</adddate> 
        <content>ASP:Active Server Page</content> 
     </留言> 
  </单元> 
  <单元 name="我的留言" type="dy" id="dy003"/> 
</留言簿> 
<留言簿 name="留言簿" type="ly" id="ly001"/> 
</Ebaihe>

bianli.asp文件



代码如下:

<% @LANGUAGE=VBScript%> 
<% 
function getimgstr(ttid,ttname,ttlvl,tttype,ttlf,ttlstr) 
   dim ttstr1 
   if ttlvl=0 then 
         ttstr1=ttstr1 & "<a href=" & chr(34) & "#" & chr(34)  
         ttstr1=ttstr1 & " onclick=" & chr(34) & "call OnClickDiv('" & ttid & "','" & "2" & "')"  
         ttstr1=ttstr1 & chr(34) & ">"  
         ttstr1= ttstr1 & "<img border=" & chr(34) & "0" & chr(34) & " src=" & chr(34)  
         ttstr1= ttstr1 & "image/Computer.gif" & chr(34) & " height=16>" & "</a>" 
         ttstr1=ttstr1 & "<a href=" & chr(34) & "#" & chr(34)  
         ttstr1=ttstr1 & " onclick=" & chr(34) & "call OnClickDiv('" & ttid & "','" & "2" & "')" 
         ttstr1=ttstr1 & chr(34) & ">"  
         ttstr1=ttstr1 & ttname & "</a><br>" & vbcrlf 
         ttstr1=ttstr1 & "<div id=" & chr(34) & ttid & chr(34) & " style=display:none>" & vbcrlf 
   else 
      for i= 2 to len(ttlstr)-1 
         if mid(ttlstr,i,1)="1" then 
            ttstr1 = ttstr1 & "<img border=" & chr(34) & "0" & chr(34) & " src=" & chr(34)  
            ttstr1 = ttstr1 & "image/I-line.gif" & chr(34) & " height=16>" 
         end if 
         if mid(ttlstr,i,1)="0" then 
            ttstr1 = ttstr1 & "<img border=" & chr(34) & "0" & chr(34) & " src=" & chr(34)  
            ttstr1 = ttstr1 & "image/none.gif" & chr(34) & " height=16>" 
         end if 
      next 
      if tttype=1 then 
         ttstr1= ttstr1 & "<a href=" & chr(34) & "#" & chr(34)  
         ttstr1=ttstr1 & " onclick=" & chr(34) & "call OnClickDiv('" & ttid & "','" & ttlf & "')" 
         ttstr1=ttstr1 & chr(34) & ">"  
         ttstr1=ttstr1 & "<img border=" & chr(34) & "0" & chr(34) & " src=" & chr(34)  
         if ttlf=0 then 
            ttstr1= ttstr1 & "image/T-plus.gif" & chr(34) & " id=" & chr(34) & "l-" & ttid & chr(34) & "  
height=16></a>" 
         else 
            ttstr1= ttstr1 & "image/l-plus.gif" & chr(34) & " id=" & chr(34) & "l-" & ttid & chr(34) & "  
height=16></a>" 
         end if 
         ttstr1= ttstr1 & "<a href=" & chr(34) & "#" & chr(34)  
         ttstr1=ttstr1 & " onclick=" & chr(34) & "call OnClickDiv('" & ttid & "','" & ttlf & "')" 
         ttstr1=ttstr1 & chr(34) & ">"  
         ttstr1=ttstr1 & "<img border=" & chr(34) & "0" & chr(34) & " src=" & chr(34)  
         ttstr1= ttstr1 & "image/c-fold.bmp" & chr(34) & " id=" & chr(34) & "p-" & ttid & chr(34) & "  
height=16></a>" 
         ttstr1= ttstr1 & "<a href=" & chr(34) & "#" & chr(34)  
         ttstr1=ttstr1 & " onclick=" &chr(34) & "call OnClickDiv('" & ttid & "','" & ttlf & "')" 
         ttstr1=ttstr1 & chr(34) & ">"  
         ttstr1=ttstr1 & ttname & "</a><br>" & vbcrlf 
         ttstr1=ttstr1 & "<div id=" & chr(34) & ttid & chr(34) & " style=display:none>" & vbcrlf 
      else 
         ttstr1 = ttstr1 & "<img border=" & chr(34) & "0" & chr(34) & " src=" & chr(34)  
         if ttlf=0 then 
            ttstr1 = ttstr1 & "image/t-line.gif" & chr(34) & " height=16>" 
         else 
            ttstr1 = ttstr1 & "image/l-line.gif" & chr(34) & " height=16>" 
         end if 
         ttstr1= ttstr1 & "<a href=" & chr(34) & "#" & chr(34)  
         ttstr1=ttstr1 & " onclick=" & chr(34) & "call OnClickDiv('" & ttid & "','3')" 
         ttstr1=ttstr1 & chr(34) & ">"  
         ttstr1=ttstr1 & "<img border=" & chr(34) & "0" & chr(34) & " src=" & chr(34)  
         ttstr1= ttstr1 & "image/leaf.bmp " & chr(34) & " id=" & chr(34) & "p-" & ttid & chr(34) & "  
height=16></a>" 
         ttstr1= ttstr1 & "<a href=" & chr(34) & "#" & chr(34)  
         ttstr1=ttstr1 & " onclick=" & chr(34) & "call OnClickDiv('" & ttid & "','3')" 
         ttstr1=ttstr1 & chr(34) & ">"  
         ttstr1=ttstr1 & ttname & "</a><br>" & vbcrlf 
         ttstr1=ttstr1 & "<div id=" & chr(34) & ttid & chr(34) & " style=display:none></div>" & vbcrlf 
      end if 
   end if  
   getimgstr=ttstr1  
end function 
Function ShowNode(node,mylvl,myleaf,mylstr) 
   dim ttstr 
   dim mystr  
   dim ttleaf 
   dim ttn 
   ttn=0 
   if myleaf=0 then 
      ttleaf=0 
   else 
      ttleaf=1 
   end if 
For Each child In node.childNodes 
    ttn=ttn+1 
    If (child.nodeType=1) Then  
       nod_name=child.Attributes.getnamedItem("name").Text  
       nod_type=child.Attributes.getnamedItem("type").Text 
       nod_id=child.Attributes.getnamedItem("id").Text 
       if nod_type<>"zs" then 
          If (child.hasChildNodes) Then 
             if ttn=node.childnodes.length then 
                mystr=mystr & getimgstr(nod_id,nod_name,mylvl,1,1,mylstr & "0") 
                ttstr=ShowNode(child,mylvl+1,1,mylstr & "0") 
             else 
                mystr=mystr & getimgstr(nod_id,nod_name,mylvl,1,0,mylstr & "1") 
                ttstr=ShowNode(child,mylvl+1,0,mylstr & "1") 
             end if 
             mystr=mystr & ttstr 
             mystr=mystr & "</div>" 
          else 
             if ttn=node.childnodes.length then 
                mystr=mystr & getimgstr(nod_id,nod_name,mylvl,0,1,mylstr & "0") 
             else 
                mystr=mystr & getimgstr(nod_id,nod_name,mylvl,0,0,mylstr & "1") 
             end if 
          End If 
       else 
          if ttn=node.childnodes.length then 
             mystr=mystr & getimgstr(nod_id,nod_name,mylvl,0,1,mylstr & "0") 
          else 
             mystr=mystr & getimgstr(nod_id,nod_name,mylvl,0,0,mylstr & "1") 
          end if 
       end if 
    end if 
Next 
ShowNode=mystr 
End Function 
  dim xmldoc 
  dim xmlstr 
  Set xmldoc = Server.CreateObject("Microsoft.XMLDOM") 
  xmldoc.async=false 
  xmldoc.load(Server.MapPath("knowledge.xml")) 
  xmlstr=ShowNode(xmldoc,0,0,"") 
'  set xmldoc=nothing 
'parent.results.display(source.transformNode(style)); 
%> 
<html>

<head> 
</head>

<body> 
<script language="VBScript">

dim olditem

sub OnClickDiv(DivId,pType) 
   if (document.all(DivId).style.display="none") then 
      document.all(DivId).style.display="" 
      if (pType="0") then 
        document.all("l-"+DivId).src="image/t-minus.gif" 
        document.all("p-"+DivId).src="image/o-fold.bmp" 
      end if 
      if (pType="1") then 
        document.all("l-"+DivId).src="image/l-minus.gif" 
        document.all("p-"+DivId).src="image/o-fold.bmp" 
      end if 
      'if (pType="3") then 
      '  document.all("p-"+DivId).src="image/o-fold.bmp" 
      'end if 
   else 
      document.all(DivId).style.display="none"  
      if (pType="0") then 
        document.all("l-"+DivId).src="image/t-plus.gif" 
        document.all("p-"+DivId).src="image/c-fold.bmp" 
      end if 
      if (pType="1") then 
         document.all("l-"+DivId).src="image/l-plus.gif" 
         document.all("p-"+DivId).src="image/c-fold.bmp" 
      end if 
      'if (pType="3") then 
      '  document.all("p-"+DivId).src="image/c-fold.bmp" 
      'end if 
    end if 
end sub 
</script> 
<font name="宋体" size="2"> 
<nobr><%=xmlstr%></nobr></font> 
</body>

(0)

相关推荐

  • 遍历DOM对象内的元素属性示例代码

    直接上代码: 例如要获取一个id为"btn"的按钮的所有属性 复制代码 代码如下: function showBtn() { var tmp=""; var objBtn = document.getElementById("btn"); for(var i in objBtn) { tmp += i+":"+objBtn[i]; } alert(tmp); }

  • JavaScript简单遍历DOM对象所有属性的实现方法

    本文实例讲述了JavaScript遍历DOM对象所有属性的实现方法.分享给大家供大家参考,具体如下: DOM对象的HTML: 复制代码 代码如下: <button id="btnToggleState" onclick="toggleStateManagement()">Disable State Cookie</button> 1.遍历DOM对象所有具备的属性(全属性.不管在HTML tag中是否设置都会遍历) var obj=docume

  • 处理及遍历XML文档DOM元素属性及方法整理

    用于处理XML文档的DOM元素属性 复制代码 代码如下: childNodes:返回当前元素所有子元素的数组: firstChild:返回当前元素的第一个下级子元素: lastChild:返回当前元素的最后一个子元素: nextSibling:返回紧跟在当前元素后面的元素: noedValue:指定表示元素值的读/写属性: parentNode:返回元素的父节点: previousSibling:返回紧邻当前元素之前的元素: 用于遍历XML文档的DOM元素方法 复制代码 代码如下: getEle

  • javascript先序遍历DOM树的方法

    DOM树由文档中的所有节点(元素节点.文本节点.注释节点等)所构成的一个树结构,DOM树的解析和构建是浏览器要实现的关键功能.既然DOM树是一个树结构,那么我们就可以使用遍历树结构的相关方法来对DOM树进行遍历,同时DOM2中的"Traversal"模块又提供了两种新的类型,从而可以很方便地实现DOM树的先序遍历. 注:本文中的5种方法都是对DOM的先序遍历方法(深度优先遍历),并且只关注Element类型. 1. 使用DOM1中的基础接口,递归遍历DOM树 DOM1中为基础类型Nod

  • JQuery遍历DOM节点的方法

    本文实例讲述了JQuery遍历DOM节点的方法.分享给大家供大家参考.具体分析如下: 本节的核心是介绍JQuery的DOM操作,前面介绍了很多创建.删除.替换等等节点操作.这里介绍如何遍历节点,选中临近节点等的一些方法. children()方法 该方法用于取得匹配元素的子元素集合.根据DOM树的结构,可以知道各个元素之间的关系以及它们子节点的个数. 下面使用children()方法来获取匹配元素的所有子元素的个数. var $body = $("body").children();

  • jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别

    在这个sprint中,因为要写前端UI,所以用到了jQuery,但是jQuery在向上遍历DOM树的API中,有parents(). parent().closest()这几个,一直不太清楚它们具体的区别,所以狠下心好好读了一下jQuery的API文档,并把区别记在这里,以供参考.  1.parents([selector]) 本方法用于选择给定jQuery对象中包含的DOM元素或者DOM元素集的祖先节点,并将这些节点包装成jQuery对象返回,返回的节点集是以从里到外的顺序排序的. 同时,本方

  • Dom遍历XML的一个例子,结果为树状结构

    knowledge.XML文件 复制代码 代码如下: <?xml version="1.0" encoding="gb2312"?>  <?xml:stylesheet type="text/xsl" href="knowledge.xsl"?>  <Ebaihe name="Ebaihe" type="gs" id="gs000">

  • Java如何基于DOM解析xml文件

    一.Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath 此文针对其中的DOM方法具体展开介绍及代码分析 sax.dom是两种对xml文档进行解析的方法(没有具体实现,只是接口),所以只有它们是无法解析xml文档的:jaxp只是api,它进一步封装了sax.dom两种接口,并且提供了DomcumentBuilderFactory/DomcumentBuilder和SAXParserFactory/SAXParser(默认使用xerces解释器).如果是嵌入式的

  • golang通过递归遍历生成树状结构的操作

    业务场景: 一个机构查询科室信息的时候,希望返回树状结构的嵌套格式; 解决办法: 通过递归和指针,嵌套成对应的结构体; 借鉴了前人的代码,但是最后递归的指针调用自己也是调试了半天才出来,这里献上完整的示例代码. package main import ( "fmt" "encoding/json" ) type dept struct { DeptId string `json:"deptId"` FrameDeptStr string `jso

  • 使用JSP + JAVABEAN + XML 开发的一个例子

    本例子是参考了一些网站上有关JSP 对 XML 的操作的相关文档,又结合了一些个人的体会.例子涉及的内容是,开发的一个企业内部定餐系统后台管理端的部分代码,功能主要集中在对于餐馆基本信息的管理. 该例子本身开发的起因是我在原公司和同事们一个玩笑的一部分.特此也表达对那些一起共事的朋友们的想念. 例子本身是在TOMCAT4.01 平台下运行的B/S结构的程式.有关TOMCAT 的配置,这里不做说明.只讲解一下相关文件及文件夹的目录结构. 目录结构说明:/tomcat/webapps/canyin/

  • ajax遍历xml文档的方法

    本文实例讲述了ajax遍历xml文档的方法.分享给大家供大家参考.具体分析如下: XMLHttpRequest对象提供了两个可以用来访问服务器响应的属性.第一个属性responseText将响应提供为一个串,第二个属性 responseXML将响应提供为一个XML对象.一些简单的用例就很适合按简单文本来获取响应,如将响应显示在警告框中,或者响应只是指示成功还是失 败的词 前面<ajax小结>中的例子是从XMLHttpRequest对象获取服务器响应,并使用XMLHttpRequest对象的re

  • PHP5中使用DOM控制XML实现代码

    下面的例子简单的演示了DOM对XML的操作,详细解释请看代码中的注释 复制代码 代码如下: <? /************************************************ ** use XML in PHP5 ** reference site: ** http://cn.php.net/manual/zh/ref.dom.php ** the follow codes need PHP5 support ********************************

  • Android利用Dom对XML进行增删改查操作详解

    1. 概述 平常我们一般是使用JSON与服务器做数据通信,JSON的话,直接用GSON或者其他库去解析很简单.但是,其他有些服务器会返回XML格式的文件,这时候就需要去读取XML文件了. XML的解析有三种方式,在Android中提供了三种解析XML的方式:DOM(Document Objrect Model) , SAX(Simple API XML) ,以及Android推荐的Pull解析方式,他们也各有弊端,而这里来看看使用DOM的方式. 2. Dom解析 DOM解析器在解析XML文档时,

  • 使用DOM创建XML

    我以前在介绍XML和让别人试着使用DOM时,不只一个人问过我用DOM是否能用来凭空直接生成一个XML文件. 当然,这是当然可以的了,其次是怎么写程序呢. 那我就这个问题,专门在这篇文章中用VB和MSXML的COM接口的DOM实现的一个例子来讲一下: 首先我要说明的是,我用的MSXML的版本是IE5带的,版本号是5.0.2919.3800,微软的早期版本的接口和新的有些不一样,所以自己编程时,应该看一下她的接口和说明. 如果你对vb和COM不太熟悉,看下面的就可能比较费劲了,但VB比起其他的语言实

  • Android开发之DOM解析xml文件的方法

    本文实例讲述了Android中DOM解析xml文件的方法.分享给大家供大家参考,具体如下: 一.在assets文件中写xml文件 <?xml version="1.0" encoding="UTF-8"?> <persons> <person id="23"> <name>李明</name> <age>30</age> </person> <pe

随机推荐