CDATA игнорировать HTML-теги не работает
Привет я передаю сообщение атрибуту в XML. Xml - это "emailBodyXML", а атрибут, который я хочу получить, - это "тело". Сообщение, которое я передаю, содержится в переменной 'emailBody'.
У меня есть этот код:
emailBodyXML.selectSingleNode("//email").setAttribute("body", "<![CDATA[" + emailBody + "]]>");
Я поместил в него cdata, потому что хочу, чтобы он игнорировал HTML-теги, которые может содержать emailBody. Но когда я отлаживаю его, HTML-теги преобразуются в <
или же >
, Мне не нравится, когда я обращаюсь к этому. Я хочу, чтобы он все еще показывал '<' и '>'. Что не так с моим кодом?
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.
Смотрите также