Escape символ двойной кавычки в XML

Есть ли escape-символ для двойной кавычки в xml? Я хочу написать тег вроде:

<parameter name="Quote = " ">

но если я поставлю ", то это означает, что строка закончилась. Мне нужно что-то вроде этого (С++):

printf("Quote = \" ");

Есть ли символ для записи перед двойной цитатой, чтобы избежать его?

Ответы

Ответ 1

Попробуйте следующее:

&quot;

Ответ 2

Вот общие символы, которые должны быть экранированы в XML, начиная с двойных кавычек:

  • двойные кавычки (") экранируются до &quot;
  • ampersand (&) экранируется до &amp;
  • одинарные кавычки (') экранируются до &apos;
  • меньше (<) сбрасывается до &lt;
  • больше (>) сбрасывается до &gt;

Ответ 3

Другие ответили в терминах того, как обрабатывать конкретное экранирование в этом случае.

Более широкий ответ - не пытаться сделать это самостоятельно. Используйте XML API - существует множество доступных практически для каждой современной платформы программирования.

XML API будут обрабатывать такие вещи, как это для вас автоматически, что делает его намного сложнее ошибиться. Если вы сами не пишете XML-API, вам редко приходится беспокоиться о таких деталях.

Ответ 4

Нет никакого escape-символа как такового, вместо этого вы можете использовать &quot; или даже <![CDATA["]]> для представления символа ".

Ответ 6

Новый, улучшенный ответ на старый, часто задаваемый вопрос...

Когда избежать двойной кавычки в XML

Двойная цитата (") может отображаться без экранирования:

  • В текстовом контенте XML:

    <NoEscapeNeeded>He said, "Don't quote me."</NoEscapeNeeded>
    
  • В атрибутах XML, разделенных одинарными кавычками ('):

    <NoEscapeNeeded name='Pete "Maverick" Mitchell'/>
    

    Примечание: переключение на одинарные кавычки (') также не требует экранирования:

    <NoEscapeNeeded name="Pete 'Maverick' Mitchell"/>
    

Двойная цитата (") должна быть экранирована:

  • В атрибутах XML, разделенных двойными кавычками:

    <EscapeNeeded name="Pete &quot;Maverick&quot; Mitchell"/>
    

Нижняя строка

Двойная кавычка (") должна быть экранирована как &quot; в XML только в очень ограниченном контексте.

Ответ 7

В С++ вы можете использовать API-интерфейс EscapeXML ATL. Это правильный способ обработки специальных символов...

Ответ 8

Вы можете попробовать использовать обратную косую черту, за которой следует "u", а затем значение unicode для символа, например, значение юникода двойной кавычки

"- > U + 0022

Поэтому, если вы устанавливаете его как часть текста в XML в android, он будет выглядеть примерно так,

<TextView
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:text=" \u0022 Showing double quotes \u0022 "/>

Это создаст текст в TextView примерно что-то вроде этого

"Отображение двойных кавычек"

Вы можете найти unicode для большинства символов и символов здесь unicode-table.com/en