XMLSerializer

XMLSerializer接口提供serializeToString() 方法来构建一个代表 DOM 树的XML字符串。

方法

serializeToString()
返回DOM子树序列化后的字符串。
serializeToStream() This API has not been standardized. This deprecated API should no longer be used, but will probably still work.
将指定元素的每个子树按照特定的字符集序列化成字节流。

示例

把 XML 序列化为字符串

首先,最基本的例子是将整个 document 对象序列化为一个 XML 字符串。

 var s = new XMLSerializer();
 var d = document;
 var str = s.serializeToString(d);
 saveXML(str);

这里新建了一个 XMLSerializer 对象实例, 然后将待序列化的 Document 对象实例传入返回等价 XML 的 serializeToString() 方法。

向一个基于 XML 的 DOM 对象中

本例使用 {domxref("Element.insertAdjacentHTML()")}} 方法将一个新的 DOM Node 插入 基于序列化 Document 对象创建的 XML 中。

注意: 在真实场景下,你通常应该通过调用 importNode() 方法将新节点加入 DOM 中, 然后通过调用以下方法将目标节点添加到 DOM 树:

因为insertAdjacentHTML() 的第二个参数是一个字符串而不是 Node 节点对象, 所以这里先要使用 XMLSerializer 将节点转换为字符串.

var inp = document.createElement('input');
var XMLS = new XMLSerializer();
var inp_xmls = XMLS.serializeToString(inp); // 先将一个 DOM 节点转换为字符串。

// 将新建的节点添加到 DOM 中。
document.body.insertAdjacentHTML('afterbegin', inp_xmls);

以上代码通过调用 Document.createElement() 方法新建一个 {HTMLElement("input")}} 对象 , 然后通过 serializeToString() 方法将该对象序列化为 XML.

做完以上工作之后, 使用 insertAdjacentHTML() 方法将 <input> 元素加入 DOM.

规范

Specification Status Comment
DOM Parsing and Serialization
XMLSerializer
Working Draft

浏览器兼容性

BCD tables only load in the browser

参见