--- title: XMLSerializer slug: XMLSerializer tags: - Converting - DOM Parsing - Interface - Parsing - Reference - Serialization - Serializing - XML - XML Serializer - conversion translation_of: Web/API/XMLSerializer ---
XMLSerializer
インターフェースは、{{Glossary("DOM")}} ツリーを表す XML 文字列を構築するための {{domxref("XMLSerializer.serializeToString", "serializeToString()")}} メソッドを提供します。
最初の基本的な例は、ドキュメント全体を XML を含む文字列にシリアライズするだけです。
var s = new XMLSerializer(); var d = document; var str = s.serializeToString(d); saveXML(str);
このコードは、新しい XMLSerializer
オブジェクトを作成し、シリアライズされる {{domxref("Document")}} を {{domxref("XMLSerializer.serializeToString", "serializeToString()")}} に渡します。これは、渡した document と同等の XML を返します。
この例は、{{domxref("Element.insertAdjacentHTML()")}} メソッドを使用して新しい DOM {{domxref("Node")}} を {{domxref("Document")}} の body に挿入します。これは、{{domxref("Element")}} オブジェクトをシリアライズすることにより作成された XML を基にしています。
注記: 実際は、{{domxref("Document.importNode", "importNode()")}} メソッドを呼び出して新しいノードを DOM に挿入する代わりに、以下のいずれかのメソッドを呼び出して DOM ツリーに追加することになるでしょう:
insertAdjacentHTML()
は文字列を受け入れるが、2 番目の引数として Node
を受け入れないため、XMLSerializer
を使用して先にノードを文字列に変換します。
var inp = document.createElement('input'); var XMLS = new XMLSerializer(); var inp_xmls = XMLS.serializeToString(inp); // まず DOM ノードを文字列に変換 // 新たに作成されたノードを document の body に挿入 document.body.insertAdjacentHTML('afterbegin', inp_xmls);
このコードは、{{domxref("Document.createElement()")}} を呼び出して新しい {{HTMLElement("input")}} 要素を作成し、{{domxref("XMLSerializer.serializeToString", "serializeToString()")}} を使用して XML にシリアライズします。
完了したら、insertAdjacentHTML()
を使用して <input>
要素を DOM に挿入します。
仕様書 | 策定状況 | 備考 |
---|---|---|
{{SpecName('DOM Parsing', '#the-xmlserializer-interface', 'XMLSerializer')}} | {{Spec2('DOM Parsing')}} |
{{Compat("api.XMLSerializer")}}