У меня есть документ HTML, который может содержать <
и >
в некоторых атрибутах. Я пытаюсь извлечь это и запустить его через XSLT, но ошибки XSLT-движка говорят мне, что <
недопустим внутри атрибута.innerHTML unencodes < в атрибутах
Я сделал некоторые раскопки и обнаружил, что он правильно убежали в исходном документе, но при этом загружаются в DOM через innerHTML
, то DOM является unencoding атрибутов. Странно, он делает это для <
и >
, но не некоторые другие, такие как &
.
Вот простой пример:
var div = document.createElement('DIV');
div.innerHTML = '<div asdf="<50" fdsa="&50"></div>';
console.log(div.innerHTML)
Я предполагаю, что реализация DOM решила, что HTML атрибуты могут быть менее строгими, чем атрибуты XML, и что это «работает, как предназначена". Мой вопрос: могу ли я обойти это без написания какой-нибудь ужасной замены регулярных выражений?
@Abel Я использую '.html JQuery (в)', я просто пытался сократить вниз, туда, где я думаю, что «проблема» происходит. Исходным документом является XML, который я запускаю через браузер XSLT перед вставкой с помощью .html() '. Позже я прохожу через обратный процесс, чтобы вернуть XML. Мне просто кажется странным, что DOM * скрывает этот символ (а не другие). – murrayju
Я не могу изменить исходный XML, и вам нужно сохранить тот же контент в конце в конце.Я мог запускать любые преобразования, необходимые в середине, но я ищу способ сделать это лучше, чем замена какого-либо регулярного выражения. Особенно учитывая, что персонаж '<', который заполнен документом. – murrayju
@Abel моя единственная цель - вернуть его обратно из DOM так же, как и он (как '<'). Я помещаю его в '.text (string)' и вынимаю его с помощью .text() '. Проблема, с которой я сталкиваюсь в этом раунде, заключается в том, что вход не равен выходному (только в этом случае). – murrayju