ColdFusion XML解析问题
我还是有点像个xml白痴。有时我明白,有时却不明白。 我有下面的XML,它最终来自解析的.NETWebService输出。出于这个问题的目的,我将其包装在一个cfxml标记中,但实际上我正在解析一个xml文档ColdFusion XML解析问题,xml,coldfusion,Xml,Coldfusion,我还是有点像个xml白痴。有时我明白,有时却不明白。 我有下面的XML,它最终来自解析的.NETWebService输出。出于这个问题的目的,我将其包装在一个cfxml标记中,但实际上我正在解析一个xml文档 <cfxml variable="local.vXML"> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microso
<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>
3.
错误的PIN码。请再试一次
我想进入
和
节点
我该怎么做
各种努力,例如:
<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>
试试这个:
<cfset respCode = XMLSearch(vXML, '//Table[@diffgr:id="Table1"]/ResponseCode')[1].XmlText>
<cfset respText = XMLSearch(vXML, '//Table[@diffgr:id="Table1"]/ResponseText')[1].XmlText>
试试这个:
<cfset respCode = XMLSearch(vXML, '//Table[@diffgr:id="Table1"]/ResponseCode')[1].XmlText>
<cfset respText = XMLSearch(vXML, '//Table[@diffgr:id="Table1"]/ResponseText')[1].XmlText>
我应该注意,这可能只适用于CF9,因为我直接从函数调用的结果引用数组元素。我认为CF的早期版本可能会因此而窒息——如果这给您带来麻烦,我可以重新编写它。是的,当场。CF8的方形数组索引括号有问题。我按照原始帖子中的编辑修改了它。我应该注意,这可能只适用于CF9,因为我直接从函数调用的结果引用了数组元素。我认为CF的早期版本可能会因此而窒息——如果这给您带来麻烦,我可以重新编写它。是的,当场。CF8的方形数组索引括号有问题。我按照原帖中的编辑修改了它。