将整个html, document 对象序列化为一个 XML 字符串

XMLSerializer
XMLSerializer接口提供serializeToString() (en-US) 方法来构建一个代表 DOM 树的 XML 字符串。
方法
serializeToString() (en-US)
返回 DOM 子树序列化后的字符串。

serializeToStream() 非标准已弃用
将指定元素的每个子树按照特定的字符集序列化成字节流。

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

 var s = new XMLSerializer();
 var d = document;
 var str = s.serializeToString(d);
 saveXML(str);
Copy to Clipboard
这里新建了一个 XMLSerializer 对象实例,然后将待序列化的 Document 对象实例传入返回等价 XMLserializeToString() (en-US) 方法。

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

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

Document 和 Element 方法 append() (en-US)prepend() (en-US)
Node.replaceWith() (en-US) 方法 (替换现有节点)
Document.insertAdjacentElement() 和 Element.insertAdjacentElement() 方法。
因为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);
Copy to Clipboard
以上代码通过调用 Document.createElement() 方法新建一个 {HTMLElement("input")}} 对象 , 然后通过 serializeToString() (en-US) 方法将该对象序列化为 XML.

做完以上工作之后,使用 insertAdjacentHTML() 方法将 <input> 元素加入 DOM.
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值