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 树:
Document
和Element
方法append()
和prepend()
Node.replaceWith()
方法(替换现有节点)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);
以上代码通过调用 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
参见
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论