XMLSerializer 编辑

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

方法

serializeToString()
返回DOM子树序列化后的字符串。
serializeToStream()
将指定元素的每个子树按照特定的字符集序列化成字节流。

示例

把 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.

规范

SpecificationStatusComment
DOM Parsing and Serialization
XMLSerializer
Working Draft

浏览器兼容性

BCD tables only load in the browser

参见

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:121 次

字数:5139

最后编辑:6 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文