XML-документы и & char? - PullRequest
       28

XML-документы и & char?

2 голосов
/ 08 августа 2009

У меня вопрос к специальным символам XML-документа, я использую & в значение элемента в XML, и анализатор TXMLDoc Delphi жалуется на это.

Я ищу некоторые параметры синтаксического анализа XML, но ни один из них не касается специальных символов,

есть идеи?

Пример:

    <Configuration>
      <Configuration_item>  
        <view_name value="some view & name"/>

....

С уважением, Mika

Ответы [ 3 ]

8 голосов
/ 08 августа 2009

Используйте &amp; для обозначения амперсанда. Причина, по которой вам нужно это сделать, заключается в том, что & является специальным символом в XML - в частности, символом, используемым для обозначения начала объекта XML, который используется для указания символов в содержимом, которые (по иронии судьбы) в противном случае были бы специальными / сложными символы.

<view_name value="some view &amp; name"/>

Другие распространенные сущности XML:

  • "is &quot;
  • &lt; (сокращение от менее чем)
  • равно &gt; (сокращение от более чем)

Для получения дополнительной информации:

http://www.xml.com/pub/a/2001/01/31/qanda.html

4 голосов
/ 08 августа 2009

&, < и > - это специальные символы, которые вы хотите отслеживать, и в атрибуте также ". & похоже на escape-символ XML.

Их можно избежать таким образом:

  • & => &amp;
  • < => &lt;
  • > => &gt;
  • " => &quot;

(На самом деле, как ни странно, вам не нужно экранировать > внутри атрибута, только <. Кроме того, если вы используете ' вместо " в качестве разделителей атрибута вместо для экранирования " как &quot; вам необходимо экранировать ' как &apos;. Подробнее см. ссылку AttValue в спецификации XML.)

2 голосов
/ 08 августа 2009

Дав и Лавинио правы.

Если у вас есть блок текста с большим количеством специальных символов, вы можете вместо этого заключить его в CDATA .

...