XMLSerializer
XMLSerializer
インターフェースは、DOM ツリーを表す XML 文字列を構築するための serializeToString()
(en-US) メソッドを提供します。
メソッド
serializeToString()
(en-US)- 文字列の形にシリアライズされたサブツリーを返します。
serializeToStream()
Non-Standard Deprecated- 指定した要素をルートとするサブツリーが、指定した文字セットを使ったバイトストリームにシリアライズされます。
例
XML を文字列にシリアライズ
最初の基本的な例は、ドキュメント全体を XML を含む文字列にシリアライズするだけです。
var s = new XMLSerializer();
var d = document;
var str = s.serializeToString(d);
saveXML(str);
このコードは、新しい XMLSerializer
オブジェクトを作成し、シリアライズされる Document
を serializeToString()
(en-US) に渡します。これは、渡した document と同等の XML を返します。
XML を基にした DOM にノードを挿入する
この例は、Element.insertAdjacentHTML()
メソッドを使用して新しい DOM Node
を Document
の body に挿入します。これは、Element
オブジェクトをシリアライズすることにより作成された XML を基にしています。
注記: 実際は、importNode()
メソッドを呼び出して新しいノードを DOM に挿入する代わりに、以下のいずれかのメソッドを呼び出して DOM ツリーに追加することになるでしょう:
Document
およびElement
メソッドappend()
(en-US) およびprepend()
(en-US)Node.replaceWith()
(en-US) メソッド (既存のノードを新しいノードと置き換えるため)Document.insertAdjacentElement()
およびElement.insertAdjacentElement()
メソッド
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);
このコードは、Document.createElement()
を呼び出して新しい <input>
要素を作成し、serializeToString()
(en-US) を使用して XML にシリアライズします。
完了したら、insertAdjacentHTML()
を使用して <input>
要素を DOM に挿入します。
仕様
仕様書 | 策定状況 | 備考 |
---|---|---|
DOM Parsing and Serialization XMLSerializer の定義 |
草案 |
ブラウザーの実装状況
BCD tables only load in the browser