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

js
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 ein HTMLDocument 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 und image/svg+xml) sind funktional identisch. Sie rufen alle den XML-Parser auf, und die Methode gibt ein XMLDocument 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.

js
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.

js
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