我一直试图从以下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+)++)++)))&start=1&rows=40" LogID="1664" ErrorCode=""></<getAtt>
从指定的xml,我必须得到“t”属性。这个xml保存在一个asp文件的变量中。请建议我热门。
答案 0 :(得分:0)
有两种方法可以做到这一点。
您可以手动拆分字符串并手动解析它,或者,您可以使用第三方XML解析器,例如Msxml2.DOMDocument.6.0 - 我会推荐后者。
首先,您需要将getAtt节点准备为具有相关父节点等的基本XML文档(您需要的主要内容是根节点),然后在MSXML2中打开该XML文档。打开后,您可以设置root并循环遍历每个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
%>