Как избежать двойных кавычек в значениях атрибутов XML? - PullRequest
125 голосов
/ 18 октября 2010

Из следующих испытаний

<tag attr="\"">
<tag attr="<![CDATA["]]>">
<tag attr='"'>

Только последний из них работает для анализатора XML, который я здесь использую.Есть ли другая альтернатива?

Ответы [ 4 ]

197 голосов
/ 18 октября 2010

Вы можете использовать &quot;

50 голосов
/ 18 октября 2010

Из XML spec :

Чтобы значения атрибутов могли содержать как одинарные, так и двойные кавычки, символ апостроф или одинарная кавычка (') может быть представлен как "'"и двойной кавычки (") как "" ".

11 голосов
/ 28 ноября 2017

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

Символ двойной кавычки должен экранироваться в этом контексте:

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

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

Символ двойной кавычки не нужно в большинстве случаев экранироваться:

  • В текстовом формате XML:

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

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

    Аналогично, (') не требует экранирования, если (") используется для разделителей значений атрибута:

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

Смотри также

8 голосов
/ 17 июля 2012

Страница преобразования строк на сайте Coder's Toolbox удобна для кодирования более чем небольшого количества кода HTML или XML для включения в качестве значения в элемент XML.

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