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 に答える