XMLSerializer
XMLSerializer 接口提供了一个 serializeToString() 方法,用于构造一个表示 DOM 树的 XML 字符串。
注意: 生成的 XML 字符串不保证是格式正确的 XML。
构造函数
XMLSerializer()-
创建一个新的
XMLSerializer对象。
实例方法
serializeToString()-
将子树序列化为字符串并返回。
示例
将 XML 序列化为字符串
此示例仅将整个文档序列化为包含 XML 的字符串。
js
const s = new XMLSerializer();
const str = s.serializeToString(document);
saveXML(str);
这涉及到创建一个新的 XMLSerializer 对象,然后将要被序列化的 Document 传递给 serializeToString(),该方法返回文档的 XML 等效表示。saveXML() 表示一个稍后会保存序列化字符串的函数。
基于 XML 将节点插入 DOM
此示例使用 Element.insertAdjacentHTML() 方法,通过序列化 Element 对象创建的 XML,将一个新的 DOM Node 插入到 Document 的 body 中。
注意: 在实际应用中,通常应该调用 importNode() 方法将新节点导入 DOM,然后调用以下方法之一将节点添加到 DOM 树中:
Element.append()/Element.prepend()和Document.append()/Document.prepend()方法。Element.replaceWith方法(用新节点替换现有节点)Element.insertAdjacentElement()方法。
因为 insertAdjacentHTML() 接受一个字符串而不是一个 Node 作为其第二个参数,所以 XMLSerializer 被用来首先将节点转换为字符串。
js
const inp = document.createElement("input");
const XMLS = new XMLSerializer();
const inp_xmls = XMLS.serializeToString(inp); // First convert DOM node into a string
// Insert the newly created node into the document's body
document.body.insertAdjacentHTML("afterbegin", inp_xmls);
代码通过调用 Document.createElement() 创建一个新的 <input> 元素,然后使用 serializeToString() 将其序列化为 XML。
完成之后,使用 insertAdjacentHTML() 将 <input> 元素插入到 DOM 中。
规范
| 规范 |
|---|
| HTML # xmlserializer |
浏览器兼容性
加载中…