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/htmltext/xmlapplication/xmlapplication/xhtml+xmlimage/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