1

次のxmlから属性の1つを取得しようとしていますが、

<getAtt MapReady="0" QueryTime="0" t="17" tt="15" pcheck="1" Startval="1" AutoNextStres="171" TC="171" q=+(A%3a(64))+AND+C%3a0+AND+((((BODY%3asujit)+OR+(BODY%3asujit*))+AND++(+(ICAL3%3a1+)+AND+(+(ICAL4%3a1+)+OR+(ICAL4%3a3+)+OR+(ICAL4%3a6+)++)++)))&amp;start=1&amp;rows=40" LogID="1664" ErrorCode=""></<getAtt>

指定された xml から、「t」属性を取得する必要があります。この xml は、asp ファイルの変数に保存されています。

4

1 に答える 1

0

これには 2 つの方法があります。

文字列を手動で分割して手動で解析するか、Msxml2.DOMDocument.6.0などのサード パーティの XML パーサーを使用できます。後者をお勧めします。

最初に、関連する親ノードなどを含む基本的な XML ドキュメントとして getAtt ノードを準備する必要があります (主に必要なのはルート ノードです)。次に、その XML ドキュメントを MSXML2 で開きます。開いたら、ルートを設定し、内部の各 getAtt ノードをループできます。

次に例を示します。

<%
    ''#### Define the XML to parse
    dim TestXML, oXML, oNode, sValue 
    TestXML = TestXML & "<?xml version=""1.0"" encoding=""UTF-8""?>" & vbcrlf
    TestXML = TestXML & "<wrapperNode>" & vbcrlf
    TestXML = TestXML & "<getAtt MapReady=""0"" QueryTime=""0"" t=""17"" tt=""15"" pcheck=""1"" Startval=""1""></getAtt>" & vbcrlf
    TestXML = TestXML & "</wrapperNode>" & vbcrlf

    ''#### Ready the XML Parser
    Set oXML = Server.CreateObject("Msxml2.DOMDocument.6.0")

    ''#### Load the XML
    oXML.LoadXML(TestXML)

    ''#### Set the root (so we can easily get a collection of nodes)
    Set oRoot = oXML.selectSingleNode("//wrapperNode")

    ''#### Loop through each node and echo out the value of the "t" attribute
    For Each oNode In oRoot.childNodes
      response.Write oNode.Attributes.getNamedItem("t").Text
    Next 

    ''#### Cleanup
    Set oXML = Nothing 
%>
于 2012-08-03T13:11:52.147 に答える