Атрибуты XML не могут содержать разметку, они должны быть только текстовым содержимым.Это означает, что элементы, разделы CDATA, комментарии и т. Д. Не допускаются в значении атрибута.В противном случае XML будет не правильно сформирован, а синтаксические анализаторы отклонят ваш XML.
Если по какой-то причине вам нужно хранить данные XML в ваших атрибутах, вам нужно экранироватьразметка XML заменяет все символы <
на объекты <
.Элемент вашего примера должен выглядеть следующим образом при экранировании значения атрибута.
<option id="67" ddmmyyyy="11 jan 2011" text="This is a text <p> ok</p> & not only a text!!" />
Также обратите внимание, что символ & не допускается как таковой, его всегда нужно экранировать как &
.Экранирование значения атрибута также означает, что синтаксический анализатор не возвращает свое содержимое в виде разметки, содержащей элементы, но возвращает его в виде текстовой строки, содержащей, например, <
символы.Это необходимо учитывать в коде, который интерпретирует значение этого атрибута.
Если вы хотите сохранить ваши данные в виде структуры XML, вы должны представлять свои данные как элементы и текстовое содержимое, а не какзначение атрибута.