2

ColdFusion では、.xml を使用して、XML 形式のデータの文字列を XML オブジェクトに解析できますxmlParse()。どうすればそれを文字列に戻すことができますか?

使用しようとするtoString()と、「複雑なオブジェクトを単純なオブジェクトに変換できません....」というエラーがスローされます。これは、それが本来の目的であるため、皮肉なことです。

最初の引数が xml 文字列である必要があるものを使用XMLTransform()する必要があります。しかし、トランスフォームに渡すノードを取得するためにも使用する必要があり、xmlSearch は xmlObject を返します。そのため、そのオブジェクトを xml 文字列形式に戻して xmlTransform に渡す必要があります。xmlSearch()

4

3 に答える 3

3

Thank You - all;

The cause of my problem is that due to the structure of this particular XML, my XMLSearch returned an array with multiple items. So trying to use toString() on that result caused an error.

Code:

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

Result/Error:

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

Solution

    writeOutput( toString( myElements[1] ) );

The XML has multiple nested nodes named "data", and XMLSearch() was traversing and returning each node.

Thanks again for you input.

于 2012-09-21T14:09:27.750 に答える
0

XMLをcfsavecontentでラップします。そして、変数を文字列として使用します

于 2012-09-20T21:36:27.840 に答える
0

XML テキストを cfxml 内に出力してから、次のように文字列形式に戻してみてください。

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

また

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

詳細については、toString() http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7f9e.htmlを参照してください。

それがあなたが必要としているものではない場合、明確にしていただけますか?

于 2012-09-20T20:39:52.467 に答える