Spec-Zone.ru › Web APIs

DOMParser: метод parseFromString()

Базовая Широко поддерживается

Эта функция хорошо отработана и работает на многих устройствах и версиях браузера. Она доступна в браузерах с марта 2016 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Метод parseFromString() интерфейса DOMParser анализирует строку, содержащую HTML или XML, возвращая HTMLDocument или XMLDocument.

Примечание: Статический метод Document.parseHTMLUnsafe() предоставляет удобный альтернативный способ парсинга строк HTML в Document.

Синтаксис

parseFromString(string, mimeType)

Параметры

string

Строка для анализа. Она должна содержать документ HTML, XML, XHTML или SVG.

mimeType

Строка. Эта строка определяет, какой анализатор (XML или HTML) будет использован для анализа строки. Допустимые значения:

  • text/html
  • text/xml
  • application/xml
  • application/xhtml+xml
  • image/svg+xml

Значение text/html вызовет HTML-парсер, и метод вернёт HTMLDocument. Любой элемент <script> будет помечен как неисполняемый, а содержимое элемента <noscript> будет обработано как разметка.

Другие допустимые значения (text/xml, application/xml, application/xhtml+xml, и image/svg+xml) функционально эквивалентны. Все они вызывают XML-парсер и метод вернёт XMLDocument.

Любое другое значение недопустимо и приведёт к исключению TypeError.

Возвращаемое значение

HTMLDocument или XMLDocument, в зависимости от аргумента mimeType.

Примеры

Парсинг XML, SVG и HTML

Обратите внимание, что MIME-тип text/html вызовет HTML-парсер, а любой другой допустимый MIME-тип вызовет XML-парсер. MIME-типы application/xml и image/svg+xml в примере ниже функционально идентичны — последний не включает никаких правил парсинга, специфичных для SVG. Различие между ними служит только для уточнения намерений кода.

const parser = new DOMParser();

const xmlString = "<warning>Beware of the tiger</warning>";
const doc1 = parser.parseFromString(xmlString, "application/xml");
// XMLDocument

const svgString = '<circle cx="50" cy="50" r="50"/>';
const doc2 = parser.parseFromString(svgString, "image/svg+xml");
// XMLDocument

const htmlString = "<strong>Beware of the leopard</strong>";
const doc3 = parser.parseFromString(htmlString, "text/html");
// HTMLDocument

console.log(doc1.documentElement.textContent);
// "Beware of the tiger"

console.log(doc2.firstChild.tagName);
// "circle"

console.log(doc3.body.firstChild.textContent);
// "Beware of the leopard"

Обработка ошибок

При использовании XML-парсера со строкой, которая не представляет собой правильно сформированный XML, возвращаемый XMLDocument объектом parseFromString будет содержать узел <parsererror>, описывающий природу ошибки парсинга.

const parser = new DOMParser();

const xmlString = "<warning>Beware of the missing closing tag";
const doc = parser.parseFromString(xmlString, "application/xml");
const errorNode = doc.querySelector("parsererror");
if (errorNode) {
  // parsing failed
} else {
  // parsing succeeded
}

Кроме того, об ошибке парсинга может быть сообщено в консоли JavaScript браузера.

Спецификации

Спецификация
HTML
# dom-domparser-parsefromstring-dev

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
parseFromString 1 12 1 8 1.3 18 4 10.1 1 1.0 4.4
html 31 12 12 17 9.1 31 14 18 9.3 3.0 4.4.3
svg 4 12 10 15 3 18 10 14 1 1.0 ≤37
xml 1 12 1 8 1.3 18 4 10.1 1 1.0 4.4

См. также

  • XMLSerializer
  • JSON.parse() - аналог для документов JSON.

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API