Amperand (&) в CDATA, нарушающий XML POST-запрос - PullRequest
2 голосов
/ 24 января 2012

Я отправляю xml-запрос с '&' в CDATA

<![CDATA[red & blue]]>

Это нарушает мой XML, заканчиваясь там, где &.Есть идеи как этого избежать?Я пробовал &amp; также, и он все еще ломается в том же месте.

Вот ссылка на запрос и вывод результатов с использованием curl

http://pastebin.com/8Nh3d5Ty

Серверработает codeigniter

1 Ответ

0 голосов
/ 24 января 2012

Что вы подразумеваете под "взломом"? Вы должны быть более конкретными в отношении того, что вы делаете и что идет не так.

Если вы используете парсер SAX, обратите внимание, что SAX может разбивать текстовые узлы на куски и доставлять куски по одному за раз. Он может разбить узлы где угодно, но SAX-парсеры нередко разбивают их на символы, значимые для синтаксического анализатора, такие как '&'.

Я сейчас посмотрел на ваше сообщение о пастбине (трудно читается желтым на белом ...). Я не знаком с инструментами, которые вы используете, но они, кажется, сильно сломаны. На самом деле он не распознает раздел CDATA, он сериализует его как "&lt;![CDATA[", что явно неправильно. Если он не распознает CDATA, то он, вероятно, будет рассматривать амперсанд как начало ссылки на сущность, поэтому после этого все ставки отключены.

...