WEB开发网
开发学院WEB开发ASP Dom遍历XML的一个例子,结果为树状结构 阅读

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

 2001-03-28 10:17:58 来源:WEB开发网   
核心提示:knowledge.xml文件<?xml version="1.0" encoding="gb2312"?><?xml:stylesheet type="text/xsl" href="knowledge.xsl"?>
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 & http://www.cncms.com/"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 & http://www.cncms.com/"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=http://www.cncms.com/"image/t-minus.gif"
    document.all("p-"+DivId).src=http://www.cncms.com/"image/o-fold.bmp"
   end if
   if (pType="1") then
    document.all("l-"+DivId).src=http://www.cncms.com/"image/l-minus.gif"
    document.all("p-"+DivId).src=http://www.cncms.com/"image/o-fold.bmp"
   end if
   'if (pType="3") then
   ' document.all("p-"+DivId).src=http://www.cncms.com/"image/o-fold.bmp"
   'end if
  else
   document.all(DivId).style.display="none"
   if (pType="0") then
    document.all("l-"+DivId).src=http://www.cncms.com/"image/t-plus.gif"
    document.all("p-"+DivId).src=http://www.cncms.com/"image/c-fold.bmp"
   end if
   if (pType="1") then
     document.all("l-"+DivId).src=http://www.cncms.com/"image/l-plus.gif"
     document.all("p-"+DivId).src=http://www.cncms.com/"image/c-fold.bmp"
   end if
   'if (pType="3") then
   ' document.all("p-"+DivId).src=http://www.cncms.com/"image/c-fold.bmp"
   'end if
  end if
end sub
</script>
<font name="宋体" size="2">
<nobr><%=xmlstr%></nobr></font>
</body>


Tags:Dom 遍历 XML

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接