在ColdFusion中,我可以将一串XML格式的数据解析为XML对象
使用xmlParse()
。如何将其转换回字符串?
当我尝试使用toString()
时,它会抛出错误“它无法将复杂对象转换为简单对象......”,这很具有讽刺意味,因为它应该是它应该做的。
我需要使用要求第一个参数的XMLTransform()
作为xml字符串。但是我还需要使用xmlSearch()
来获取一个节点来传递给我的变换,xmlSearch返回一个xmlObject。所以现在我需要将该对象放回xml字符串格式以传递给xmlTransform。
答案 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中。并将变量用作字符串