将XML对象转换回ColdFusion中的字符串

时间:2012-09-20 20:21:40

标签: coldfusion xml-parsing

在ColdFusion中,我可以将一串XML格式的数据解析为XML对象 使用xmlParse()。如何将其转换回字符串?

当我尝试使用toString()时,它会抛出错误“它无法将复杂对象转换为简单对象......”,这很具有讽刺意味,因为它应该是它应该做的。

我需要使用要求第一个参数的XMLTransform()作为xml字符串。但是我还需要使用xmlSearch()来获取一个节点来传递给我的变换,xmlSearch返回一个xmlObject。所以现在我需要将该对象放回xml字符串格式以传递给xmlTransform。

3 个答案:

答案 0 :(得分:3)

谢谢 - 全部;

我的问题的原因是由于这个特定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有多个名为“data”的嵌套节点,XMLSearch()遍历并返回每个节点。

再次感谢您输入。

答案 1 :(得分:0)

尝试在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

的详细信息

如果那不是你需要的,你能澄清一下吗?

答案 2 :(得分:0)

我会将XML包装在cfsavecontent中。并将变量用作字符串