Dom遍历XML的一个例子,结果为树状结构
程序员文章站
2023-08-13 22:00:18
knowledge.xml文件 复制代码 代码如下: ...
knowledge.xml文件
bianli.asp文件
复制代码 代码如下:
<?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>
<?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>
<%
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>
上一篇: 饮食要注意!吃辣肚子疼怎么办
下一篇: 用jsp页面生成随机的验证数字码示例