XMLSerializer

Baseline 已广泛支持

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

XMLSerializer 接口提供了一个 serializeToString() 方法,用于构造一个表示 DOM 树的 XML 字符串。

注意: 生成的 XML 字符串不保证是格式正确的 XML。

构造函数

XMLSerializer()

创建一个新的 XMLSerializer 对象。

实例方法

serializeToString()

将子树序列化为字符串并返回。

示例

将 XML 序列化为字符串

此示例仅将整个文档序列化为包含 XML 的字符串。

js
const s = new XMLSerializer();
const str = s.serializeToString(document);
saveXML(str);

这涉及到创建一个新的 XMLSerializer 对象,然后将要被序列化的 Document 传递给 serializeToString(),该方法返回文档的 XML 等效表示。saveXML() 表示一个稍后会保存序列化字符串的函数。

基于 XML 将节点插入 DOM

此示例使用 Element.insertAdjacentHTML() 方法,通过序列化 Element 对象创建的 XML,将一个新的 DOM Node 插入到 Document 的 body 中。

注意: 在实际应用中,通常应该调用 importNode() 方法将新节点导入 DOM,然后调用以下方法之一将节点添加到 DOM 树中:

因为 insertAdjacentHTML() 接受一个字符串而不是一个 Node 作为其第二个参数,所以 XMLSerializer 被用来首先将节点转换为字符串。

js
const inp = document.createElement("input");
const XMLS = new XMLSerializer();
const inp_xmls = XMLS.serializeToString(inp); // First convert DOM node into a string

// Insert the newly created node into the document's body
document.body.insertAdjacentHTML("afterbegin", inp_xmls);

代码通过调用 Document.createElement() 创建一个新的 <input> 元素,然后使用 serializeToString() 将其序列化为 XML。

完成之后,使用 insertAdjacentHTML()<input> 元素插入到 DOM 中。

规范

规范
HTML
# xmlserializer

浏览器兼容性

另见