文章收藏-FAQ 位置:电脑学习网

ASP 遍历 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〉

     [文章来源:“十万个为什么”电脑学习网]
     [网络地址:http://why100000.com]
     [版权声明:除本站部分特别声明禁止转载的专稿外,其他的文章可以自由转载,但请务必注明出处和原始作者。本站文章版权归文章原作者所有。如果本站转载的文章有版权问题请联系本站,我们会尽快予以更正。]
 

【字体:[大] [中] [小] 【加入收藏】 【发表评论】 【关闭本窗口】

Copyright © “十万个为什么”电脑学习网 2000-2007 陕ICP备06007929号
站务联系:MSN & Email:zhangking2008@gmail.com  QQ:9365822