Flash AS2:如何将CDATA发布到服务器?

时间:2009-01-13 16:44:44

标签: xml flash actionscript-2 cdata

我有一个XML对象,我想通过HTTP POST发送给我的播放器。使用XML.sendAndLoad时,这一切都很好。

问题在于,当我生成的XML对象包含CDATA时,在发生POST之前会剥离CDATA。

所以,如果我有:

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

当我执行sendAndLoad时,这就是POSTed:

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

当我尝试使用createDlement,createTextNode和appendChild等XMLDOM方法创建XML时,也会出现同样的情况。

AS2文档说不支持CDATA。这有解决方法吗?我认为可以通过扩展和覆盖XML类来修复它,但我还没有找到办法。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是预期的行为。 CDATA在构建树时由XML解析器代替。发送的是树的序列化,没有CDATA。

如果要发送原始XML源,则必须将其作为纯字符串数据发送。

BTW我没有看到它在这里是怎么回事,因为两者在语义上是相同的,即“&lt;![CDATA [hello]]&gt;”和“你好”给出相同的字符串。 CDATA只是一种引用语法,不是重要的标记。但是,如果CDATA包含特殊字符,则可能会出现问题。你必须正确引用它们。