我有一个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类来修复它,但我还没有找到办法。
谢谢!
答案 0 :(得分:0)
这是预期的行为。 CDATA在构建树时由XML解析器代替。发送的是树的序列化,没有CDATA。
如果要发送原始XML源,则必须将其作为纯字符串数据发送。
BTW我没有看到它在这里是怎么回事,因为两者在语义上是相同的,即“&lt;![CDATA [hello]]&gt;”和“你好”给出相同的字符串。 CDATA只是一种引用语法,不是重要的标记。但是,如果CDATA包含特殊字符,则可能会出现问题。你必须正确引用它们。