2013-04-16 35 views
2

我一直在尋找最後幾小時的事情,我無法弄清楚這一點!最後,我有一個來自未來的HTTPHeader以XML格式的數據:Coldfusion XML輸出注入doc頭信息

<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嘗試重新保存變量下來,連勝文,等等等等。我不能爲我的生活找出如何使這項工作。

更新:下面是如上所述地執行代碼:

<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> 
+5

」第二次我把它作爲一個輸出到XML ...「請告訴我們這樣做的代碼。 – imthepitts

+0

@imthepitts這裏是一個濃縮的版本,我把所有的廢話都撕掉了。這個功能與上述相同(不能在這裏添加,更新後...) –

回答

0

您的代碼獲得XMLDOM元素不只是它的價值,justadd .xmltext到最後只能得到文本,而不是元素。

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

拉入整個XML元素,而不是一個特定的值。如果您更改在xmlText拉它應該解決您的問題

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

我會建議運行<cfdump var="#BCSetup#" abort>設定要確保你得到你想要的值之後。 「