我是asp的新手,并且在接下来的几天里有一个截止日期。 我从webservice响应中收到以下xml。
print("<?xml version="1.0" encoding="UTF-8"?>
<user_data>
<execution_status>0</execution_status>
<row_count>1</row_count>
<txn_id>stuetd678</txn_id>
<person_info>
<attribute name="firstname">john</attribute>
<attribute name="lastname">doe</attribute>
<attribute name="emailaddress">john.doe@johnmail.com</attribute>
</person_info>
</user_data>");
如何将此xml解析为asp属性?
非常感谢任何帮助
由于 达明
在更多分析中,由于aboce响应来自Web服务调用,因此还会返回一些soap内容。我还能在下面使用卢克斯代码吗?
答案 0 :(得分:9)
您需要阅读有关MSXML解析器的信息。以下是一个好的一体化示例http://oreilly.com/pub/h/466
的链接对XPath的一些阅读也会有所帮助。您可以在MSDN中获得所需的所有信息。
从Luke出色的回复中窃取代码以进行汇总:
Dim oXML, oNode, sKey, sValue
Set oXML = Server.CreateObject("MSXML2.DomDocument.6.0") 'creating the parser object
oXML.LoadXML(sXML) 'loading the XML from the string
For Each oNode In oXML.SelectNodes("/user_data/person_info/attribute")
sKey = oNode.GetAttribute("name")
sValue = oNode.Text
Select Case sKey
Case "execution_status"
... 'do something with the tag value
Case else
... 'unknown tag
End Select
Next
Set oXML = Nothing
答案 1 :(得分:6)
通过ASP,我认为你的意思是经典ASP?尝试:
Dim oXML, oNode, sKey, sValue
Set oXML = Server.CreateObject("MSXML2.DomDocument.4.0")
oXML.LoadXML(sXML)
For Each oNode In oXML.SelectNodes("/user_data/person_info/attribute")
sKey = oNode.GetAttribute("name")
sValue = oNode.Text
' Do something with these values here
Next
Set oXML = Nothing
上面的代码假设您将XML放在一个名为sXML的变量中。如果您通过ServerXMLHttp请求使用它,您应该能够使用对象的ResponseXML属性代替上面的oXML,并完全跳过LoadXML步骤。
答案 2 :(得分:0)
您可以尝试将xml加载到xmldocument对象中,然后使用它的方法对其进行解析。