Функция $.parseXML()

Определение и применение

Функция $.parseXML() разбирает XML-строку и возвращает отдельный XML-документ. Например, из полученного каталога можно извлечь название товара, не добавляя весь XML в HTML-страницу.

Синтаксис

JavaScript
const xml = $.parseXML(xmlText);
const title = $(xml).find("title").text();

Параметры и возвращаемое значение

xmlText — строка корректного XML. Результат для корректной непустой строки — XMLDocument. Некорректная структура, например незакрытый элемент, вызывает исключение; предусмотрите try/catch для внешних данных.

XML чувствителен к регистру имён и требует корректной вложенности и закрытия элементов. Это не HTML-парсер: браузер не исправляет входную строку по правилам HTML. Пустой или нестроковый ввод в реализации jQuery может дать null; валидируйте вход до работы с документом.

Особенности и совместимость

API доступен с 1.5 и поддерживается в 4.0. Для сложного XML с пространствами имён используйте подходящие DOM-методы, например getElementsByTagNameNS(), а не полагайтесь на обычный CSS-селектор.

Разбор не проверяет предметную схему: наличие нужных тегов и допустимость значений проверяются отдельно. Для вывода извлечённого значения в HTML используйте .text(), чтобы оно оставалось текстом.

Документация

Пример использования

Извлечение данных и ошибка XML: попробуйте сами

Из корректного XML извлекается название. Второй фрагмент с нарушенной вложенностью вызывает обрабатываемую ошибку. Используется jQuery 4.0.0.

index.html
HTML
<pre id="result"></pre>
main.js
JavaScript
const xml = $.parseXML('<catalog><title>Книга</title></catalog>')
let invalid = false
try {
    $.parseXML('<catalog><title></catalog>')
} catch (error) {
    invalid = true
}
$('#result').text($(xml).find('title').text() + ' | ошибка XML: ' + invalid)