Skip to content

Instantly share code, notes, and snippets.

@gifnksm
Created February 8, 2010 03:50
Show Gist options
  • Save gifnksm/297860 to your computer and use it in GitHub Desktop.
Save gifnksm/297860 to your computer and use it in GitHub Desktop.
E4XからDOMノードへ変換する (HTML用に余分な空白を混入させない)
// XML (E4X)からDOM Nodeへの変換
default xml namespace = "http://www.w3.org/1999/xhtml";
function e4xToDOM(xml, xmlns) {
var pretty = XML.prettyPrinting;
// 余分な空白を混入させないように,prettyPrintingを一時的に無効にする
XML.prettyPrinting = false;
var doc = (new DOMParser).parseFromString(
'<root xmlns="' + xmlns + '">' + xml.toXMLString() + "</root>",
"application/xml");
XML.prettyPrinting = pretty;
var imported = document.importNode(doc.documentElement, true);
var range = document.createRange();
range.selectNodeContents(imported);
var fragment = range.extractContents();
range.detach();
return fragment.childNodes.length > 1 ? fragment : fragment.firstChild;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment