XMLSerializer
基线 广泛可用
此功能已建立良好,并在许多设备和浏览器版本上运行。它从 2015 年 7 月.
报告反馈
XMLSerializer
接口提供了 serializeToString()
方法,用于构造表示 DOM 树的 XML 字符串。
构造函数
XMLSerializer()
-
注意:生成的 XML 字符串不保证是格式良好的 XML。
实例方法
serializeToString()
-
创建一个新的
XMLSerializer
对象。
示例
返回字符串的序列化子树。
将 XML 序列化为字符串
此示例仅将整个文档序列化为包含 XML 的字符串。
const s = new XMLSerializer();
const str = s.serializeToString(document);
saveXML(str);
js
这包括创建一个新的 XMLSerializer
对象,然后将要序列化的 Document
传递到 serializeToString()
中,该方法返回文档的 XML 等效项。saveXML()
代表一个函数,该函数将保存序列化后的字符串。
基于 XML 将节点插入 DOM
此示例使用 Element.insertAdjacentHTML()
方法,基于序列化后的 Element
对象创建的 XML,将新的 DOM Node
插入 Document
的主体中。
- 注意:在实际应用中,您通常应该改为调用
importNode()
方法将新节点导入 DOM,然后调用以下方法之一将节点添加到 DOM 树 Element.append()
/Element.prepend()
和Document.append()
/Document.prepend()
方法。Element.replaceWith
方法(用新节点替换现有节点)
Element.insertAdjacentElement()
方法。
此示例仅将整个文档序列化为包含 XML 的字符串。
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);
由于 insertAdjacentHTML()
接受一个字符串而不是一个 Node
作为其第二个参数,因此 XMLSerializer
用于首先将节点转换为字符串。
该代码通过调用 Document.createElement()
创建一个新的 <input>
元素,然后使用 serializeToString()
将其序列化为 XML。
规范
完成后,insertAdjacentHTML() 用于将 <input> 元素插入 DOM。 |
---|
规范 # DOM 解析和序列化 |
浏览器兼容性
the-xmlserializer-interface