2

最近几个小时我一直在看东西,我无法弄清楚这个!最终,我有一些来自 HTTPheader 的 xml 数据:

<cfset xmlPOST = GetHTTPRequestData().content>
<cfset xmlDOM = XmlParse(xmlPOST)>
<cfset BCsetup = xmlDOM.cXML.Request.PunchOutSetupRequest.BuyerCookie>

我正在尝试获取 BuyerCookie、使用它并将其放入新的 xml 文档中。如果我现在 cfoutput BCsetup,它会给我正确的值(比如说 12345)。

第二次我将它作为输出放入 XML 中,它抛出<xml version="1.0" encoding="UTF-8"?><BuyerCookie>12345</BuyerCookie> 而不是 12345。

我已经尝试了从 toString() 到 cfsavecontent 的所有方法来尝试重新保存变量 down 和直接文本等。我​​终其一生都无法弄清楚如何使这项工作。

更新:这是如上所述执行的代码:

<cfset BCsetup = xmlDOM.cXML.Request.PunchOutSetupRequest.BuyerCookie> 


<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.020/cXML.dtd">
<cXML payloadID="2009-11-02T13:27:53+10:00" timestamp="2009-11-02T13:27:53+10:00">
  <Response>
    <Status code="200" text="OK"/>
    <PunchOutSetupResponse>
      <StartPage>
        <URL>https://mysite.com/testpost.cfm?BuyerCookie=<cfoutput>#BCsetup#</cfoutput></URL>
      </StartPage>
    </PunchOutSetupResponse>
  </Response>
</cXML>
4

2 回答 2

1
<cfset BCsetup = xmlDOM.cXML.Request.PunchOutSetupRequest.BuyerCookie> 

拉入整个 XML 元素,而不是一个特定的值。如果您将其更改为拉入xmlText它应该可以解决您的问题

<cfset BCsetup = xmlDOM.cXML.Request.PunchOutSetupRequest.BuyerCookie.xmlText>

我建议<cfdump var="#BCSetup#" abort>在设置后运行以确保获得所需的值。

于 2013-04-17T14:32:00.967 回答
0

您的代码正在获取 xmldom 元素而不仅仅是它的值,只需将 .xmltext 添加到末尾以仅获取文本而不是元素。

于 2013-04-17T08:05:38.993 回答