0

我再次遇到从经典 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"

等等等等

基本上遍历每个节点中的每个命名项目并列出。

4

1 回答 1

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
于 2013-10-20T21:29:04.823 回答