【发布时间】:2012-03-06 21:58:30
【问题描述】:
我还是个 xml 白痴。有时我明白,有时没有。 我有以下 XML,它最终源自已解析的 .NET Web 服务输出。出于这个问题的目的,我将它包装在 cfxml 标记中,但实际上我正在解析一个 xml 文档。
<cfxml variable="local.vXML">
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<Table diffgr:id="Table1" msdata:rowOrder="0">
<ResponseCode>3</ResponseCode>
<ResponseText>Incorrect PIN. Please try again</ResponseText>
</Table>
</NewDataSet>
</diffgr:diffgram>
</cfxml>
我想访问<ResponseCode> 和<ResponseText> 节点。
我该怎么做?
各种努力,例如以下
<cfset Local.xSet = xmlSearch(local.vXML,"NewDataSet") />
<cfset Local.xSet = xmlSearch(local.vXML,"Table") />
<cfset Local.xSet = xmlSearch(local.vXML,"ResponseCode") />
产生一个空数组
解决方案
感谢 Jake 提供的 CF9 解决方案。以下为 CF8 改编。
<cfset vResponseCodeXML = XMLSearch(Local.vXML, '//Table[@diffgr:id="Table1"]/ResponseCode')>
<cfset vResponseTextXML = XMLSearch(Local.vXML, '//Table[@diffgr:id="Table1"]/ResponseText')>
<cfset vResponseCode = vResponseCodeXML[1].XmlText>
<cfset vResponseText = vResponseTextXML[1].XmlText>
【问题讨论】:
标签: xml coldfusion