2012-09-20 52 views
1

在ColdFusion中,我可以使用xmlParse()將XML格式的數據字符串解析爲XML對象 。我怎樣才能將它轉換回字符串?在ColdFusion中將XML對象轉換回字符串

當我嘗試使用toString()時,它會拋出一個錯誤,「它不能將複雜對象轉換爲簡單對象....」,這很具有諷刺意味,因爲這就是它應該做的。

我需要使用XMLTransform()其中要求第一個參數是一個xml字符串。但是我還需要使用xmlSearch()來獲取節點以傳入我的變換,並且xmlSearch返回一個xmlObject。所以現在我需要把這個對象轉換回xml字符串格式傳遞給xmlTransform。

+1

實際上[這裏]的文件(http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-6e8e.html)指出,第一參數可以是「以字符串格式的XML文檔,或一個XML文檔對象「。你有錯誤嗎? –

+0

*您是否收到錯誤?* - 如果是,請發佈您的代碼和完整的錯誤信息。 – Leigh

+1

你需要提供一些代碼來演示'toString()'不適合你,因爲它絕對*不能用於XML。 –

回答

0

儘量只outputing內cfxml的XML文本,然後變回成字符串格式如下所示:

<cfxml variable="xmlObject" casesensitive="yes"> 
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"> 
</rss> 
</cfxml> 
<cfoutput>#ToString(xmlObject)#</cfoutput> 

OR

<cffile action="write" file="#ExpandPath('RSS.xml')#" output="#ToString(xmlObject)#"> 

要詳細瞭解toString()http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7f9e.html

如果不是什麼你需要,你能澄清一下嗎?

0

我會將XML包裝在cfsavecontent中。並使用變量作爲字符串

2

謝謝你 - 所有;

我的問題的原因是,由於這個特定的XML的結構,我的XMLSearch返回一個包含多個項目的數組。所以試圖在該結果上使用toString()導致錯誤。

代碼:

pXML = xmlParse(_xml); 
    myElements = XmlSearch(pXML, "//data"); 
    writeoutput(toString(myElements)); 

結果/錯誤:

Error Occurred While Processing Request 
    Complex object types cannot be converted to simple values. 

writeOutput(toString(myElements[1])); 

的XML有多個巢ed節點名爲「data」,並且XMLSearch()正在遍歷並返回每個節點。

再次感謝您的意見。

+1

好了,只是要清楚,你是不是想'的toString(someXml)',你想'的toString(anArray)'(因爲'xmlSearch()'返回一個數組,而不是XML)。下次提示:包括可能會給你帶來問題的代碼,而不是僅僅描述它。我們可以在大約5秒內爲你解決這個問題......乾杯。 –