XMLSerializer - 用来构造表示 DOM 树的 XML 字符串

XMLSerializer 接口提供了 serializeToString() 方法来构造表示 DOM 树的 XML 字符串。

方法

serializeToString()

返回一个字符串,表示序列化子树。

serializeToStream()

使用指定的字符集将以指定元素为根的子树序列化为字节流。

实例

将 XML 序列化为字符串

第一个基本实例仅将整个文档序列化为包含 XML 的字符串。

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

它创建了一个新的 XMLSerializer 对象,然后将 Document 传递给 serializeToString() 进行序列化,它返回的 XML 等同于文档本身的内容。

将节点插入基于 XML 的 DOM 中

本实例使用 Element.insertAdjacentHTML() 方法,将序列化 Element 对象生成的 XML,作为一个新的 DOM Node 插入到文档主体中。

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

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

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

// 将新创建的节点插入到文档主体中
document.body.insertAdjacentHTML('afterbegin', inp_xmls);

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

完成后,将使用 insertAdjacentHTML()<input> 元素添加到 DOM 中。

规范

规范 状态 备注
DOM Parsing and Serialization
XMLSerializer 的定义
工作草案 -

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持 支持12 支持9 支持3
serializeToStream 支持79 支持 — 20 不支持 支持 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 支持 支持 未知 支持 未知 支持 支持
serializeToStream 支持 支持 未知 支持 — 20 未知 支持 不支持

相关链接