CDATA игнорировать HTML-теги не работает

Привет я передаю сообщение атрибуту в XML. Xml - это "emailBodyXML", а атрибут, который я хочу получить, - это "тело". Сообщение, которое я передаю, содержится в переменной 'emailBody'.

У меня есть этот код:

emailBodyXML.selectSingleNode("//email").setAttribute("body", "<![CDATA[" + emailBody + "]]>");

Я поместил в него cdata, потому что хочу, чтобы он игнорировал HTML-теги, которые может содержать emailBody. Но когда я отлаживаю его, HTML-теги преобразуются в &lt; или же &gt;, Мне не нравится, когда я обращаюсь к этому. Я хочу, чтобы он все еще показывал '<' и '>'. Что не так с моим кодом?

1 ответ

Решение

Вы не можете иметь < в значении атрибута, так что ваш <![CDATA[... является недействительным. Вы не сможете поместить разметку в значение атрибута без использования сущностей для < (и цитаты, амперсанды и т. д.). Ваш лучший выбор будет использовать CDATA в элементе вместо

http://www.w3.org/TR/2008/REC-xml-20081126/

Пример:

<body><![CDATA[<p>HTML MARKUP GOES HERE.</p>]]></body>

Теперь это устаревшее для HTML. https://developer.mozilla.org/en-US/docs/Web/API/CDATASection говорит:

Обратите внимание, что разделы CDATA не должны использоваться в HTML; они работают только в XML.

Смотрите также

Другие вопросы по тегам