xml|遍历|数组|xml|遍历|数组
<% on error resume next
'<![CDATA[]]>问题没处理
'xmlfile = "???.xml"
Set xml = Server.CreateObject("MSXML.DOMDocument")
xml.async = false
xml.load(xmlfile)
Public Function PrettyPrint(node,tabLevel)
on error resume next
If node.nodeName <> vbNullStrin And node.nodeName <> "#text" Then
PrettyPrint = PrettyPrint & tabLevel & "[sp2]0[sp2]" + node.nodeName + "[sp1]"
For Each i In node.Attributes
pstr = pstr + i.Name + "=" + i.Value + " "
Next
PrettyPrint = PrettyPrint & tabLevel & "[sp2]2[sp2]" + pstr + "[sp1]"
End If
If node.hasChildNodes Then
For Each childNode In node.childNodes
tabLevel=tabLevel+1
PrettyPrint = PrettyPrint + PrettyPrint(childNode, tabLevel)
Next
Else
PrettyPrint = PrettyPrint & tabLevel-1 & "[sp2]1[sp2]" + node.Text + "[sp1]"
End If
End Function
Public Function ShowXml(s)
on error resume next
ta = split(s,"[sp1]")
k = ubound(ta)-1
'response.write "sta(" &k &",2)<p>"
redim sta(k,2)
for i = 0 to k
ta2 = split(ta(i),"[sp2]")
cs1 = ta2(0)
cs2 = ta2(1)
cs3 = ta2(2)
'Response.write "sta(" & cs1 & "," & cs2 & ") = " & cs3 & "
"
sta(cs1,cs2) = cs3
Next
ShowXml = sta
End Function
test = ShowXml(PrettyPrint(xml.documentElement,0))
response.write "<table width=100% border=1 bgcolor=#dddddd>" + chr(13)
response.write "<tr bgcolor=#767A7D>"
response.write "<td>nodeName</td><td>nodeValue</td><td>Attributes</td>"
response.write "</tr>" + chr(13)
for b = 0 to ubound(test)
If test(b,0)<>"" then
response.write "<tr "
If b=0 then response.write "bgcolor=#939495" end if
If IsEmpty(test(b,1)) and b<>0 then response.write "bgcolor=#BABBBC" end if
response.write ">"
response.write "<td>" & test(b,0) & " </td>"
response.write "<td>" & test(b,1) & " </td>"
response.write "<td>" & test(b,2) & " </td>"
response.write "</tr>" + chr(13)
End if
next
response.write "</table>"
%>
PrettyPrint函数返回字符串
ShowXml函数处理PrettyPrint的返回值并返回一个二维数组