我一直在查看最后几个小时的事情,我无法想出这一个!最终,我有一些来自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
&gt;而不是12345。
我已经尝试了从toString()到cfsavecontent的所有内容,尝试重新保存变量和直接文本等等。我不能为我的生活弄清楚如何使这项工作。
更新:这是如上所述执行的代码:
<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>
答案 0 :(得分:1)
<cfset BCsetup = xmlDOM.cXML.Request.PunchOutSetupRequest.BuyerCookie>
引入整个XML元素而不是特定值。如果你改变它以引入xmlText
它应该解决你的问题
<cfset BCsetup = xmlDOM.cXML.Request.PunchOutSetupRequest.BuyerCookie.xmlText>
我建议您在设置后运行<cfdump var="#BCSetup#" abort>
以确保获得所需的值。
答案 1 :(得分:0)
您的代码正在获取xmldom元素,而不仅仅是它的值,只是将.adml文件添加到结尾以获取文本而不是元素。