XMLSerializer

XMLSerializer インターフェースは、DOM ツリーを表す XML 文字列を構築するための serializeToString() メソッドを提供します。

メソッド

serializeToString()
文字列の形にシリアライズされたサブツリーを返します。
serializeToStream()
指定した要素をルートとするサブツリーが、指定した文字セットを使ったバイトストリームにシリアライズされます。

XML を文字列にシリアライズ

最初の基本的な例は、ドキュメント全体を XML を含む文字列にシリアライズするだけです。

 var s = new XMLSerializer();
 var d = document;
 var str = s.serializeToString(d);
 saveXML(str);

このコードは、新しい XMLSerializer オブジェクトを作成し、シリアライズされる DocumentserializeToString() に渡します。これは、渡した document と同等の XML を返します。

XML を基にした DOM にノードを挿入する

この例は、Element.insertAdjacentHTML() メソッドを使用して新しい DOM NodeDocument の body に挿入します。これは、Element オブジェクトをシリアライズすることにより作成された XML を基にしています。

注記: 実際は、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);

このコードは、Document.createElement() を呼び出して新しい <input> 要素を作成し、serializeToString() を使用して XML にシリアライズします。

完了したら、insertAdjacentHTML() を使用して <input> 要素を DOM に挿入します。

仕様

仕様書 策定状況 備考
DOM Parsing and Serialization
XMLSerializer の定義
草案

ブラウザーの実装状況

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
XMLSerializerChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE 完全対応 9Opera 完全対応 ありSafari 完全対応 3WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり
serializeToStream
実験的非推奨非標準
Chrome 完全対応 ありEdge 完全対応 79Firefox 未対応 ? — 20IE 未対応 なしOpera 完全対応 ありSafari 未対応 なしWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 未対応 ? — 20Opera Android 完全対応 ありSafari iOS 未対応 なしSamsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
未対応  
未対応
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非推奨。新しいウェブサイトでは使用しないでください。
非推奨。新しいウェブサイトでは使用しないでください。

関連項目