CDATA中的Amperand(&)打破了XML POST请求

时间:2012-01-23 21:43:20

标签: xml cdata

我发送带有'&'的xml请求在CDATA

<![CDATA[red & blue]]>

它通过结束&的位置来破坏我的XML。任何想法如何避免这种情况?我也试过了&amp;,它仍然在同一个地方打破。

以下是使用curl

的请求和结果输出的链接

http://pastebin.com/8Nh3d5Ty

服务器正在运行codeigniter

1 个答案:

答案 0 :(得分:0)

“打破”是什么意思?你需要更具体地了解自己在做什么以及出了什么问题。

如果您使用的是SAX解析器,请注意SAX可以将文本节点分成几部分并一次传送一个部分。它可以在任何地方破坏节点,但是SAX解析器在对解析器很重要的字符(例如'&amp;')中打破它们并不罕见。

我现在看了你的pastebin信息(很难看到白色的黄色......)。我不熟悉你正在使用的工具,但它们看起来很糟糕。它实际上没有识别CDATA部分,它将其序列化为"&lt;![CDATA[",这显然是错误的。如果它没有识别CDATA那么它可能会将&符号视为启动实体引用,所以在此之后,所有的投注都会被关闭。