2009-01-13 22 views
1

我有一個XML對象,我想通過HTTP POST發送給我的播放器。使用XML.sendAndLoad時,這一切都很好。Flash AS2:如何將CDATA POST到服務器?

問題是,當我生成的XML對象包含CDATA時,CDATA在POST發生之前被剝離。

所以,如果我有:

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

當我做了sendAndLoad這是被髮布時間:

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

一樣,當我嘗試創建使用XMLDOM方法一樣的createElement的XML時, createTextNode和appendChild。

AS2文檔說CDATA不受支持。有沒有解決方法?我認爲它可以通過擴展和重寫XML類來解決,但我還沒有找到一種方法來做到這一點。

謝謝!

回答

0

這是預期的行爲。 CDATA在構建其樹時由XML解析器替代。發送的是樹的序列化,不支持CDATA。

如果要發送原始XML源,則必須將其作爲純字符串數據發送。

順便說一句,我沒有看到它是如何成爲一個問題,因爲它們在語義上是相同的,即「<![CDATA [你好]] >」和「你好」給出相同的字符串。 CDATA只是一個引用語法,不是重要的標記。但是,如果CDATA包含特殊字符,可能會出現問題。你必須正確引用它們。

+0

問題是服務器上的腳本(我沒有構建它)正在尋找CDATA。我如何發送RAW XML源代碼?我可以用LoadVars來做,因爲它附加了一個var名稱,這是服務器端腳本不允許的另一件事。 – nerdabilly 2009-01-13 17:22:34