This page was translated from English by the community.Learn more and join the MDN Web Docs community.
DOMParser
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
DOMParser может парсить XML или HTML источник содержащийся в строке в DOMDocument. СпецификацияDOMParser находится вDOM Parsing and Serialization.
Заметьте, чтоXMLHttpRequest поддерживает парсинг XML и HTML из интернет ресурсов (по ссылке)
In this article
Создание DOMParser
Для того чтобы создатьDOMParser просто используйтеnew DOMParser().
Для большей информации о созданииDOMParser в расширениях Firefox, пожалуйста прочитайте документацию :nsIDOMParser.
Парсинг XML
Как только вы создали объект парсера, вы можете парсить XML из строки, используя методparseFromString:
var parser = new DOMParser();var doc = parser.parseFromString(stringContainingXMLSource, "application/xml");Обработка ошибок
Заметьте, если процесс парсинга не удастся ,DOMParser теперь не выдаёт исключение, но вместо этого выдаёт документ ошибки (seeFirefox bug 45566):
<parsererror xmlns="http://www.mozilla.org/newlayout/xml/parsererror.xml">(Описание ошибки)<sourcetext>(отрывок XML документа)</sourcetext></parsererror>Ошибки синтаксического анализа также сообщаются вконсоль ошибок, с идентификатором URI документа (см. Ниже) в качестве источника ошибки.
Разбор SVG или HTML
DOMParser так же может быть использован для разбора SVG документа Gecko 10.0 или HTML документа Gecko 12.0. На выходе возможны 3 варианта, в зависимости от переданного MIME типа. Если MIME тип передан какtext/xml, результирующий объект будет типаXMLDocument, еслиimage/svg+xml, соответственноSVGDocument, а для MIME типаtext/html -HTMLDocument.
var parser = new DOMParser();var doc = parser.parseFromString(stringContainingXMLSource, "application/xml");// возвращает Document, но не SVGDocument или HTMLDocumentparser = new DOMParser();doc = parser.parseFromString(stringContainingXMLSource, "image/svg+xml");// возвращает SVGDocument, который так же является экземпляром класса Document.parser = new DOMParser();doc = parser.parseFromString(stringContainingHTMLSource, "text/html");// возвращает HTMLDocument, который так же является экземпляром класса Document.DOMParser HTML для устаревших браузеров
/* * DOMParser HTML extension * 2012-09-04 * * By Eli Grey, http://eligrey.com * Public domain. * КОД РАСПРОСТРАНЯЕТСЯ БЕЗ КАКИХ ЛИБО ГАРАНТИЙ. ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК. *//*! @source https://gist.github.com/1129031 *//*global document, DOMParser*/(function (DOMParser) { "use strict"; var proto = DOMParser.prototype, nativeParse = proto.parseFromString; // Firefox/Opera/IE throw errors on unsupported types try { // WebKit returns null on unsupported types if (new DOMParser().parseFromString("", "text/html")) { // text/html parsing is natively supported return; } } catch (ex) {} proto.parseFromString = function (markup, type) { if (/^\s*text\/html\s*(?:;|$)/i.test(type)) { var doc = document.implementation.createHTMLDocument(""); if (markup.toLowerCase().indexOf("<!doctype") > -1) { doc.documentElement.innerHTML = markup; } else { doc.body.innerHTML = markup; } return doc; } else { return nativeParse.apply(this, arguments); } };})(DOMParser);DOMParser from Chrome/JSM/XPCOM/Privileged Scope
Смотрите статью по ссылке:nsIDOMParser
Спецификации
| Specification |
|---|
| HTML> # dom-parsing-and-serialization> |