Как заставить XML обрабатывать специальные символы как простой текст? - PullRequest
1 голос
/ 04 июня 2009

Структура <! - некоторый текст -> - это комментарий в XML, но я хотел бы поместить этот текст в другой тег, и я не хочу, чтобы он рассматривался как комментарий, просто как текст это в комментарии класса Visual Studio), как это:

<summary>
   (...) that contains
   sections marked with <!--[section_name]--> at the beginning.
</summary>

Как мне это сделать?

Ответы [ 7 ]

3 голосов
/ 04 июня 2009

Используйте код, подобный этому:

<xml>
  <![CDATA[

    <!-- comment treated as plain text -->

  ]]>
</xml>
3 голосов
/ 04 июня 2009

Используйте CDATA или экранируйте символы, используя & gt; или & lt; для <и> соответственно.

2 голосов
/ 04 июня 2009

Взгляните на CDATA-термин: http://en.wikipedia.org/wiki/CDATA

<summary>
    <![CDATA[
    (...) that contains
    sections marked with <\!--[section_name]--> at the beginning.
    ]]>
</summary>
0 голосов
/ 04 июня 2009

Принятый ответ - использовать CDATA, но я настоятельно рекомендую бежать. Если вы используете CDATA, вы должны убедиться, что ваш контент не содержит «]]>», и каким-то образом избежать его, если это так (маловероятно во многих случаях, но если ваша программа существует для вставки XML в другой XML, риск возрастает ).

Также, использует сериализатор для генерации вашего XML, потому что есть много придирчивых правил, которые почти все ошибаются (я пишу XML в течение 12 лет и не доверяю себе, чтобы получить с ними все в порядке). Самый простой подход - создать DOM и затем преобразовать его в текст.

0 голосов
/ 04 июня 2009

Либо убегайте от персонажей ...

<summary>Blah blah &lt;!-- not a comment --&gt; blah.</summary>

... или оберните их внутри раздела PCDATA:

<summary><![CDATA[Blah blah <!-- blah -->]]></summary>
0 голосов
/ 04 июня 2009

Вы должны обернуть текст внутри тега CDATA:

<summary>
<![CDATA[   (...) that contains
   sections marked with <!--[section_name]--> at the beginning.]]>
</summary>
0 голосов
/ 04 июня 2009

Обернуть содержимое элемента в разделе CDATA. Это говорит парсеру обрабатывать содержимое как литерал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...