XMLSerializer:serializeToString() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

XMLSerializer 接口的 serializeToString() 方法可以将指定的 DOM 树序列化为 XML 格式的字符串。

语法

js
serializeToString(rootNode)

参数

rootNode

用于构建 XML 表示的 DOM 树或子树的根 Node

返回值

一个包含指定 DOM 树 XML 表示的字符串。

异常

TypeError

如果指定的 rootNode 不是兼容的节点类型,则抛出。根节点必须是 NodeAttr

InvalidStateError DOMException

如果树无法成功序列化,则抛出,这可能是由于内容的兼容性问题导致 XML 序列化失败。

SyntaxError DOMException

如果请求了 HTML 序列化但由于内容格式不正确而无法成功,则抛出。

用法说明

兼容的节点类型

指定的根节点及其所有后代节点都必须与 XML 序列化算法兼容。根节点本身必须是 NodeAttr 对象。

除了 NodeAttr 之外,以下类型也允许作为根节点的后代节点:

如果遇到任何其他类型,将抛出 TypeError 异常。

关于生成的 XML 的注意事项

关于 serializeToString() 生成的 XML 输出,有几点值得注意:

  • 对于 XML 序列化,ElementAttr 节点始终会保留其 namespaceURI。这可能意味着之前指定的 prefix 或默认命名空间可能会被丢弃或修改。
  • 生成的 XML 与 HTML 解析器兼容。
  • HTML 命名空间中没有子节点的元素(从而表示空标签)将使用开始和结束标签("<someelement></someelement>")进行序列化,而不是使用自闭合标签("<someelement/>")。

规范

规范
HTML
# dom-xmlserializer-serializetostring

浏览器兼容性

另见