& символ в xml - PullRequest
       6

& символ в xml

0 голосов
/ 05 октября 2010

Я работаю с XML-файлом, который не открывается при открытии его в Firefox. Я получаю ошибку интерпретации. Все из-за символа &. При замене на & или удаляя его, я не получаю ошибки.

Проблема в том, что получатель этого XML-документа, который распечатывает его на своей домашней странице, печатает & вместо &.

Могу я что-то сделать или они должны что-то сделать?

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 05 октября 2010

В XML & само по себе не допускается. Вам нужно экранировать его до &amp; или поместить в секцию <![CDATA[]]>.

Ваш приемник обрабатывает XML так, как если бы он был обычным текстом - они делают неправильно.

Однако, если они не могут измениться, вы можете использовать <![CDATA[&]]> для амперсанда, хотя если они не обрабатывают данные как XML, это, вероятно, также вызовет у них проблемы (но будет более явным).

Третий вариант - закодировать & в качестве его числовой символьной сущности &#38; - это может сработать, если приемник обрабатывает XML как HTML, но если он отображает его как &#38;, ему необходимо исправить его на своем конец.

0 голосов
/ 05 октября 2010

Firefox терпит неудачу, потому что & является началом сущности в XML, и он ожидает остальных сущностей.

Если вы хотите отправить символ &, вам следует заменить & его сущностью &amp; или &#38; или отправьте неразобранную строку с CDATA

http://en.wikipedia.org/wiki/CDATA

0 голосов
/ 05 октября 2010

Попробуйте использовать числовое представление для &, которое равно &#38;, возможно, получатель просто не понимает сущности.

Если это не помогает, то это определенно является проблемой получателя.

...