DOMParser: parseFromString()-Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2016.
Die parseFromString()
-Methode der DOMParser
-Schnittstelle analysiert einen String, der entweder HTML oder XML enthält, und gibt ein HTMLDocument
oder ein XMLDocument
zurück.
Hinweis:
Die statische Methode Document.parseHTMLUnsafe()
bietet eine ergonomische Alternative zum Parsen von HTML-Strings in ein Document
.
Syntax
parseFromString(string, mimeType)
Parameter
string
-
Der zu parsende String. Er muss ein HTML, xml, XHTML oder svg-Dokument enthalten.
mimeType
-
Ein String. Dieser String bestimmt, ob der XML-Parser oder der HTML-Parser zum Parsen des Strings verwendet wird. Gültige Werte sind:
text/html
text/xml
application/xml
application/xhtml+xml
image/svg+xml
Ein Wert von
text/html
ruft den HTML-Parser auf, und die Methode gibt einHTMLDocument
zurück. Jedes<script>
-Element wird als nicht ausführbar markiert, und der Inhalt von<noscript>
wird als Markup geparst.Die anderen gültigen Werte (
text/xml
,application/xml
,application/xhtml+xml
undimage/svg+xml
) sind funktional identisch. Sie rufen alle den XML-Parser auf, und die Methode gibt einXMLDocument
zurück.Jeder andere Wert ist ungültig und führt zu einem
TypeError
.
Rückgabewert
Ein HTMLDocument
oder ein XMLDocument
, abhängig von dem mimeType
-Argument.
Beispiele
XML, SVG und HTML Parsen
Beachten Sie, dass ein MIME-Typ von text/html
den HTML-Parser aufruft, während jeder andere gültige MIME-Typ den XML-Parser aufruft. Die application/xml
- und image/svg+xml
-MIME-Typen im folgenden Beispiel sind funktional identisch — letzterer enthält keine SVG-spezifischen Parsing-Regeln. Die Unterscheidung zwischen den beiden dient nur zur Verdeutlichung der Absicht des Codes.
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"
Fehlerbehandlung
Bei Verwendung des XML-Parsers mit einem String, der kein gut geformtes XML darstellt, enthält das von parseFromString
zurückgegebene XMLDocument
einen <parsererror>
-Knoten, der die Art des Parsing-Fehlers beschreibt.
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
}
Zusätzlich kann der Parsing-Fehler in der JavaScript-Konsole des Browsers gemeldet werden.
Spezifikationen
Specification |
---|
HTML Standard # dom-domparser-parsefromstring-dev |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
XMLSerializer
JSON.parse()
- Gegenstück fürJSON
-Dokumente.