Set xml = Server.CreateObject("MSXM">

遍历XML文档返回二维数组(ASP)(更新版)

80酷酷网    80kuku.com

  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的返回值并返回一个二维数组

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: