Инструменты XML

экранирование XMLс учётом места вставки

Выберите текст элемента или значение атрибута перед преобразованием.

экранирование XML

Ввод

Результат

Текст обрабатывается в этом браузере и не отправляется на сервер.

Параметры

Контекст влияет только на кодирование. Разделители сохраняются, а восстановленная новая строка принадлежит значению. Отчёт JSON сохраняет границы записей.

Ввод ≤ 1 048 576, вывод ≤ 6 291 456, отчёт ≤ 16 777 216 единиц UTF-16; пакет ≤ 10 000 записей.

38 → 48 единиц · 3 замен · 1 записей

экранирование XML требуется, когда амперсанд в названии товара нарушает ленту или кавычки должны попасть в атрибут. Правила зависят от места вставки: текст элемента и значение в кавычках обрабатываются по-разному.

Разэкранирование XML здесь снимает один слой ссылок. Инструмент не разбирает теги и DTD, а успешный результат не означает, что весь документ прошёл проверку.

Зачем нужно экранирование XML

Сохранить значимые пробельные символы

экранирование XML заменяет CR числовой ссылкой. В атрибуте дополнительно защищаются TAB, LF и выбранная кавычка. Это сохраняет значение при вставке в обычный атрибут типа CDATA.

Одно значение с кавычками идёт по путям текста и атрибута; нужная кавычка защищается только на пути атрибута.

Не спутать строки с записями

Числовая ссылка может восстановить перевод строки внутри значения. Отчёт JSON хранит исходный текст, результат и первоначальный разделитель отдельно для каждой записи.

Две карточки записей остаются раздельными, а восстановленный перевод строки расширяет содержимое первой.

Выбрать контекст и проверить замену

01

Указать внешнюю кавычку

В режиме текста кавычки остаются. Для атрибута выберите фактическую внешнюю кавычку — одинарную или двойную. Инструмент не добавляет её и не создаёт тег, выдавая только фрагмент содержимого.

02

Настроить момент запуска

Автоматическое преобразование выполняется через 350 мс после правки. Отключите его, чтобы увидеть кнопку, или нажмите Ctrl/Cmd+Enter. Любая правка сразу запрещает экспорт старого результата.

03

Подтвердить замену входа

Пример и очистка сначала показывают предпросмотр и число символов. Применение подтверждает замену; одна отмена возвращает ввод и результат. Длинный вывод раскрывается частями по 20 000 единиц.

Имена, числовые ссылки и позиции ошибок

Пять встроенных имён

экранирование XML использует встроенные XML сущности отдельно от HTML. Декодер принимает amp, lt, gt, quot и apos с учётом регистра и обязательной точкой с запятой.

Две системы счисления

A и A восстанавливают A. В шестнадцатеричном префиксе допустима только строчная x; цифры A–F могут быть любого регистра. Кириллица и допустимые эмодзи остаются читаемыми.

Ошибка в исходном месте

Специальные символы XML можно представить ссылками. Запрещённый символ не становится допустимым от записи его номера. Первая ошибка указывает исходную строку и столбец UTF-16; частичный результат не выдаётся.

Область применения и ограничения

Без проверки всего документа
экранирование XML не проверяет вложенность тегов, имена элементов, синтаксис атрибутов или схемы. При декодировании обычные угловые скобки и кавычки сохраняются; проверяются только ссылки.
Один слой, строгие имена
< превращается в < за один проход.  , собственные DTD-сущности, одиночный & и незаконченные ссылки вызывают ошибку. Рекурсивного декодирования и загрузки внешних сущностей нет.
Диапазон XML 1.0
NUL, запрещённые управляющие символы, одиночные суррогаты и U+FFFE/U+FFFF отвергаются и в тексте, и в числовой форме. Допустимые символы дополнительных плоскостей сохраняются, включая U+1FFFE.
Пробелы не нормализуются
Кодирование защищает CR, а в атрибутах также TAB/LF. Декодирование сохраняет исходные пробельные символы. Сохранение значения относится к атрибутам CDATA; токенизированные типы DTD могут нормализоваться последующим парсером.
Пакет состоит из исходных строк
CRLF, CR и LF разделяют записи; пустые и последняя пустая тоже учитываются. Разделители остаются буквальными. 
 может добавить строку внутри значения, поэтому TXT не даёт однозначных границ. Используйте массив JSON records.
Фиксированные пределы
Ввод: 1 048 576 единиц UTF-16; вывод: 6 291 456; отчёт: 16 777 216; пакет: 10 000 записей. Превышение отменяет весь запуск. Нет импорта файлов, загрузки URL, упаковки CDATA, полного ASCII-кодирования или незаметного удаления символов.

Вопросы про экранирование XML

Можно ли использовать в XML именованные сущности HTML?

Не все: XML имеет только пять встроенных имён. Для неразрывного пробела можно использовать допустимый символ Unicode или   вместо  . Это экранирование XML не читает пользовательские определения DTD.

Почему обычный текст нужно экранировать перед вставкой в XML?

Чтобы символы данных, например & и <, не стали разметкой. Инструмент также заменяет >, исключая буквальную последовательность ]]>, и учитывает кавычки и пробелы выбранного контекста.

Что меняется при кодировании всех символов?

При таком режиме даже обычные буквы стали бы числовыми ссылками. Здесь этот режим не предусмотрен: преобразуются требуемые знаки и пробельные символы, остальные допустимые символы сохраняются.

В каких случаях вместо сущностей выбирают CDATA?

CDATA бывает удобен для текста с большим числом угловых скобок. Он недопустим внутри атрибута и не может содержать собственное завершение ]]>. Страница не создаёт такую оболочку.

Остановится ли XML-парсер на неправильной сущности?

XML-парсер сообщает об ошибочных или необъявленных ссылках. Этот декодер также останавливается при ошибке ссылки, но успешное преобразование не заменяет проверку всего XML-документа.

Остался вопрос?

Сравнить на реальном значении

Проверьте экранирование XML на значении с &, кавычками и переводом строки в контекстах текста и атрибута.