Dom遍历XML的一个例子,结果为树状结构
2023-06-13 09:13:52 时间
knowledge.XML文件
复制代码代码如下:
<?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文件
<%
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) & "" & ttid & chr(34) & "
height=16></a>"
else
ttstr1= ttstr1 & "image/l-plus.gif" & chr(34) & " id=" & chr(34) & "" & 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) & "" & 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) & "" & 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(""+DivId).src="image/t-minus.gif"
document.all(""+DivId).src="image/o-fold.bmp"
end if
if (pType="1") then
document.all(""+DivId).src="image/l-minus.gif"
document.all(""+DivId).src="image/o-fold.bmp"
end if
"if (pType="3") then
" document.all(""+DivId).src="image/o-fold.bmp"
"end if
else
document.all(DivId).style.display="none"
if (pType="0") then
document.all(""+DivId).src="image/t-plus.gif"
document.all(""+DivId).src="image/c-fold.bmp"
end if
if (pType="1") then
document.all(""+DivId).src="image/l-plus.gif"
document.all(""+DivId).src="image/c-fold.bmp"
end if
"if (pType="3") then
" document.all(""+DivId).src="image/c-fold.bmp"
"end if
end if
end sub
</script>
<font name="宋体" size="2">
<nobr><%=xmlstr%></nobr></font>
</body>
相关文章
- 【说站】js深度优先遍历的介绍
- Python遍历(查找)指定文件
- 使用MySQL 8的递归CTE遍历树
- Golang 防止路径遍历漏洞
- 【Kotlin】循环控制流 ( for 循环 | Iterator 遍历形式 | Iterator 遍历要求 | IntArray 源码解析 )
- Java利用dom4j生成xml文件、解析XML详解编程语言
- Linux进程遍历之旅(linux进程遍历)
- 深入分析:Redis 遍历 Key 的过程(redis遍历key)
- 轻松玩转Linux:修改XML文件的正确打开方式(linux修改xml文件)
- Oracle数据库实现XML解析(oracle解析xml)
- MSSQL中XML数据输出实现简易指南(mssql输出xml)
- MSSQL从XML中快速读取信息(mssql 读取 xml)
- MSSQL妙用:用XML解析精彩世界(mssql 解析 xml)
- Oracle 数据库管理中的 XML 文件定义(.xml oracle)
- MySQL和XML实现配置文件的完美结合(mysql xml配置c)
- 使用MySQL和XML创建强大的数据表格(mysql xml 表)
- 使用MySQL将XML数据存储起来,轻松高效地管理和访问(mysql xml 存储)
- 深入剖析MySQL与XML数据交互中的符号使用方法(mysql xml $和)
- Oracle中XML文件解析技术探究(oracle中xml解析)
- 使用MySQL处理XML文件时如何比较大小(mysql xml 大于)
- Oracle XML安装指南(oracle xml安装)
- Oracle XML乱码问题深思熟虑(oracle xml乱码)
- 怎样打开XML文件?xml文件如何打开?
- Javascript的数组与字典用法与遍历对象的属性技巧
- python中使用enumerate函数遍历元素实例