1

我一直在尝试从以下 xml 中获取属性之一,

<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

有两种方法可以做到这一点。

您可以手动拆分字符串并手动解析它,或者,您可以使用第 3 方 XML 解析器,例如Msxml2.DOMDocument.6.0 - 我会推荐后者。

首先,您需要将 getAtt 节点准备为带有相关父节点等的基本 XML 文档(您需要的主要是根节点),然后在 MSXML2 中打开该 XML 文档。打开后,您可以设置根并循环遍历其中的每个 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 回答