1

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

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

所以如果我有:

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

当我执行 sendAndLoad 时,这就是发布的内容:

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

当我尝试使用 createElement、createTextNode 和 appendChild 等 XMLDOM 方法创建 XML 时,也会发生同样的情况。

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

谢谢!

4

1 回答 1

0

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

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

顺便说一句,我看不出这怎么可能是个问题,因为两者在语义上是相同的,即 "<![CDATA[hello]]>" 和 "hello" 给出相同的字符串。CDATA 只是一种引用语法,而不是重要的标记。但是,如果 CDATA 包含特殊字符,则可能会出现问题。您必须正确引用它们。

于 2009-01-13T16:52:59.590 回答