Как избежать двойных кавычек в значениях атрибутов XML?

97

Из следующих исследований

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

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

Теги:

4 ответа

155
Лучший ответ

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

  • 13
    Doh! Я печатал &quote; и было интересно, почему это не работает ...
  • 3
    Явное и более длинное соглашение об именах лучше, чем сокращенные или сокращенные, при именовании переменных, функций, атрибутов и т. Д .; Я буду ясен по поводу краткости в любое время - это мое нежелательное мнение.
Показать ещё 1 комментарий
45

Из Спецификация XML:

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

7

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

5

Символ двойной кавычки (") может быть экранирован как &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"/>
    

См. также

Ещё вопросы

Сообщество Overcoder
Наверх
Меню