创建一个 XML 文档
使用以下方法来创建一个 XML 文档,该文档是 Document 的一个实例。
把字符串解析成 DOM 树
下面这个例子使用 DOMParser 把字符串中的 XML 片段转换为 DOM 树:
jsconst xmlStr = '你好!
';
const parser = new DOMParser();
const doc = parser.parseFromString(xmlStr, "application/xml");
// 打印根元素的名称或错误信息
const errorNode = doc.querySelector("parsererror");
if (errorNode) {
console.log("解析时遇到错误");
} else {
console.log(doc.documentElement.nodeName);
}
把 URL 可寻址的资源解析成 DOM 树
使用 fetch
下列示例代码读取一个 URL 可寻址的 XML 文件,并将其解析成 DOM 树:
jsfetch("example.xml")
.then((response) => response.text())
.then((text) => {
const parser = new DOMParser();
const doc = parser.parseFromString(text, "text/xml");
console.log(doc.documentElement.nodeName);
});
这些代码将资源以文本字符串的形式获取,然后使用 DOMParser.parseFromString() 构建 XMLDocument。
如果文档是 HTML,上面的代码将返回一个 Document。如果文档是 XML,那得到的对象实际上是一个 XMLDocument。这两种类型实质上是一样的,不同点大部分是历史遗留的,尽管区分它们也会有一些实际好处。
备注:事实上,HTMLDocument 也是一个接口,但是它不必是一个独立的类型。在一些浏览器上它是,但在另外一些浏览器上它仅仅是 Document 接口的别名。
序列化 XML 文档
给定一个 Document,你可以使用 XMLSerializer.serializeToString() 方法把文档的 DOM 树序列化为 XML。
使用下面的方法来序列化在前面的部分中创建的 XML 文档内容。
把 DOM 树序列化成字符串
首先,使用使用文档对象模型中的方法构建一个 DOM 树。也可以使用从 fetch() 中获得的 DOM 树。
为了将 DOM 树 doc 序列化为 XML 文本,调用 XMLSerializer.serializeToString():
jsconst serializer = new XMLSerializer();
const xmlStr = serializer.serializeToString(doc);
序列化 HTML 文档
如果你手上的 DOM 是一个 HTML 文档,你可以使用 serializeToString() 将其序列化;但是也有一个更简单的选择:直接用 Element.innerHTML 属性(如果你仅仅想得到指定节点的后代的话)或 Element.outerHTML 属性(如果你想得到节点本身及它所有的后代的话)。
jsconst docInnerHtml = document.documentElement.innerHTML;
因此,docInnerHtml 是一个包含 HTML 内容的文档的字符串,换句话来说,也是
元素的内容。你可以使用以下代码得到
和它的后代对应的 HTML:jsconst docOuterHtml = document.documentElement.outerHTML;
参见
XPath
fetch()
XMLHttpRequest
Document、XMLDocument 和 HTMLDocument
Help improve MDN
Was this page helpful to you?
Yes
No
Learn how to contribute
This page was last modified on 2025年10月14日 by MDN contributors.
View this page on GitHub • Report a problem with this content