--- title: XMLSerializer slug: Web/API/XMLSerializer tags: - DOM Parsing - XML - XMLSerializer - construct - conversion translation_of: Web/API/XMLSerializer original_slug: XMLSerializer ---
XMLSerializer
接口提供{{domxref("XMLSerializer.serializeToString", "serializeToString()")}} 方法来构建一个代表 {{Glossary("DOM")}} 树的XML字符串。首先,最基本的例子是将整个 document 对象序列化为一个 XML 字符串。
var s = new XMLSerializer(); var d = document; var str = s.serializeToString(d); saveXML(str);
这里新建了一个 XMLSerializer
对象实例, 然后将待序列化的 {{domxref("Document")}} 对象实例传入返回等价 XML 的 {{domxref("XMLSerializer.serializeToString", "serializeToString()")}} 方法。
本例使用 {domxref("Element.insertAdjacentHTML()")}} 方法将一个新的 DOM {{domxref("Node")}} 插入 基于序列化 {{domxref("Document")}} 对象创建的 XML 中。
注意: 在真实场景下,你通常应该通过调用 {{domxref("Document.importNode", "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);
以上代码通过调用 {{domxref("Document.createElement()")}} 方法新建一个 {HTMLElement("input")}} 对象 , 然后通过 {{domxref("XMLSerializer.serializeToString", "serializeToString()")}} 方法将该对象序列化为 XML.
做完以上工作之后, 使用 insertAdjacentHTML()
方法将 <input>
元素加入 DOM.
Specification | Status | Comment |
---|---|---|
{{SpecName('DOM Parsing', '#the-xmlserializer-interface', 'XMLSerializer')}} | {{Spec2('DOM Parsing')}} |