DOMParser:parseFromString() 方法
parseFromString()
方法是 DOMParser
接口的一个方法,用于解析包含 HTML 或 XML 的字符串,并返回 HTMLDocument
或 XMLDocument
。
注意:Document.parseHTMLUnsafe()
静态方法提供了一种符合人体工程学的替代方法,用于将 HTML 字符串解析为 Document
。
语法
parseFromString(string, mimeType)
参数
string
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
请注意,text/html
的 MIME 类型将调用 HTML 解析器,而任何其他有效的 MIME 类型将调用 XML 解析器。下面的示例中的 application/xml
和 image/svg+xml
MIME 类型在功能上是相同的——后者不包含任何特定于 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 的字符串时,parseFromString
返回的 XMLDocument
将包含一个 <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 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
XMLSerializer
JSON.parse()
-JSON
文档的对应方法。