Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ColdFusion XML解析问题_Xml_Coldfusion - Fatal编程技术网

ColdFusion 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

我还是有点像个xml白痴。有时我明白,有时却不明白。 我有下面的XML,它最终来自解析的.NETWebService输出。出于这个问题的目的,我将其包装在一个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>

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的方形数组索引括号有问题。我按照原帖中的编辑修改了它。