1

HTTP POST 経由でプレーヤーに送信したい XML オブジェクトがあります。XML.sendAndLoad を使用する場合は、これで問題ありません。

問題は、私が生成した XML オブジェクトに CDATA が含まれている場合、POST が発生する前に CDATA が取り除かれることです。

私が持っている場合:

var xml:XML = new XML("<root><tag><![CDATA[hello]]></tag></root>")  

sendAndLoad を実行すると、これが POST されます。

<root><tag>hello</tag></root>

createElement、createTextNode、appendChild などの XMLDOM メソッドを使用して XML を作成しようとすると、同じことが起こります。

AS2 ドキュメントには、CDATA はサポートされていないと書かれています。これに対する回避策はありますか? XML クラスを拡張してオーバーライドすることで修正できると考えていますが、まだ方法が見つかりません。

ありがとう!

4

1 に答える 1

0

これは予期される動作です。CDATA は、ツリーの構築時に XML パーサーによって置き換えられます。送信されるのは、ツリーのシリアル化であり、CDATA はありません。

生の XML ソースを送信する場合は、純粋な文字列データとして送信する必要があります。

ところで、どちらも意味的に同一であるため、ここでどのように問題になるかわかりません。つまり、「<![CDATA[hello]]>」と「hello」は同じ文字列を返します。CDATA は単なる引用構文であり、重要なマークアップではありません。ただし、CDATA に特殊文字が含まれていると問題が発生する可能性があります。それらを適切に引用する必要があります。

于 2009-01-13T16:52:59.590 に答える