2012-01-23 45 views
2

我在CDATAAmperand(&)在CDATA破XML POST請求

<![CDATA[red & blue]]> 

以 '&' 發送XML請求其通過結束在&是打破我的XML。任何想法如何避免這種情況?我也試過&amp;,它仍然在同一地點休息。

下面是使用curl

http://pastebin.com/8Nh3d5Ty

服務器連接請求和結果輸出運行笨

+2

請張貼的XML。您所描述的內容不應該發生,因爲CDATA部分中的文本不需要轉義。 – Oded

+1

同時告訴我們「仍然有什麼問題」。你使用什麼軟件,以及遇到什麼錯誤。請閱讀http://stackoverflow.com/questions/how-to-ask。如果你不遵循這些建議,你的問題就會關閉。 –

+0

這是我的要求和輸出http://pastebin.com/8Nh3d5Ty。我正在使用curl來提出請求,服務器正在codeigniter上運行 – user530361

回答

0

你說的「破」是什麼意思?您需要更具體地瞭解您正在做什麼以及發生了什麼問題。

如果使用SAX解析器,請注意,SAX可以打破文本節點成小塊並提供片一次一個。它可以在任何地方突破節點,但它並不少見,SAX解析器在那些顯著解析器的字符,例如「&」打破它們。

現在我已經看了你的引擎收錄消息(讀取硬盤上的白黃...)。我不熟悉你使用的工具,但它們看起來很糟糕。它實際上是不承認的CDATA部分,它的序列化作爲"&lt;![CDATA["這顯然是錯誤的。如果它不承認CDATA那麼它可能會對待符號作爲起始實體引用,所以在這之後,所有的賭注都關閉。

+0

嗨Michael,我正在使用的工具是curl發送請求。我已經找到了這個問題,因爲http://curl.haxx.se/mail/archive-2001-08/0139.html curl做到了這一點:「<![CDATA [」更改爲'<'。這是一個不處理數據字符串中的特殊字符的捲曲問題。感謝您的時間並回復大家。 – user530361