我再次遇到从经典asp中的XML文件中提取信息的问题。
我有这个xml文件:http://treci.co.uk/members/temp/test_corp_2.xml
我正在使用此代码来提取所有节点名称和值:
kill_url = "http://treci.co.uk/members/temp/test_corp_2.xml"
Set oXML = Server.CreateObject("Msxml2.DOMDocument.6.0")
Set xh = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0")
xh.open "GET", kill_url, False
xh.send
xml = xh.responseText
oXML.LoadXML xml
set nodes = oXML.selectNodes("//*")
for i = 0 to nodes.length -1
response.write(nodes(i).nodeName & " - " & nodes(i).text & "<br />")
next
但这并没有拉动每个节点中的所有命名项。有没有办法做到这一点并产生这样的结果:
name="kills"
key="killID"
columns="killID,solarSystemID,killTime,moonID"
killID="33891411"
solarSystemID="31002317"
killTime="2013-10-18 10:00:00"
moonID="0"
characterID="92217137"
characterName="Justin Perelta"
corporationID="1160301547"
等等
基本上遍历每个节点和列表中的每个命名项目。
答案 0 :(得分:0)
我担心我的VB * x *技能早已消失,但您正在选择XML文档中的所有元素(selectNodes(//*)
),并想知道为什么没有获取属性名称和值。您的代码循环遍历元素,而不是元素的属性。
此外,您需要通过nodes.item(i)
而不是nodes(i)
来引用节点。那就是nodes
通常不是DOM中的数组。
您需要一个内部循环,它迭代每个节点的attributes
属性返回的映射。
有些内容:
set nodes = oXML.selectNodes("//*")
for i = 0 to nodes.length -1
set attributes = nodes.item(i).attributes
for j = 0 to attributes.length - 1
response.write(attributes.item(j).nodeName & " - " & attributes.item(j).value & "<br />")
next
next