XML

名前空間を持つ要素の作成

element = document.createElementNS(namespaceURI, qualifiedName);
document.createElementNS - Web API reference | MDN

namespaceURIで、名前空間を指定します。

var div = document.createElementNS(
    'http://www.w3.org/1999/xhtml', 'div' );

このメソッドはHTML文書中にXMLを記述するなど、その文書とは異なる名前空間の要素を作成する場合に用います。名前空間に相違がなければ、XMLの要素もcreateElement()で作成できます。Example - document.createElementNS - Web API Interfaces | MDN

XMLのパース

DOMParser

XMLやHTMLのコードから、DOMツリーを生成できます。

パースの失敗

要素に予期せぬ空白文字が混入していると、パースに失敗することがあります。

domParser.parseFromString( '<ELEMENT />', 'application/xml' );

domParser.parseFromString( '<ELEMENT\x20/>', 'application/xml' );
domParser.parseFromString( '<ELEMENT\xa0/>', 'application/xml' ); // 整形式になっていません。

innerHTML、outerHTMLがない

Internet ExplorerやSafari、それにOperaの一部のバージョンでは、DOMParserから得られたDOMの要素はinnerHTMLとouterHTMLプロパティを持ちません。よってこれらのブラウザでDOMをテキストとして取得するには、その要素をXMLSerializerでテキストに変換します。javascript - does innerHTML work with XML Elements? - Stack Overflow

XPath

XPathの使用方法

XMLHttpRequest

XMLHttpRequestオブジェクトのresponseXMLプロパティには、XMLドキュメントを表すDocumentオブジェクトへの参照が格納されます。

XMLのシリアル化

XMLSerializer

DOMツリーから、テキストを生成できます。

var dom = document.createElement( 'a' );
dom.appendChild( document.createElement( 'b' ) );

var serializer = new XMLSerializer();

var str = serializer.serializeToString( dom );
// "<a xmlns="http://www.w3.org/1999/xhtml"><b></b></a>"

参考

参考書

  • JavaScript 第5版 [オライリー・ジャパン] David Flanagan
    21章「JavaScriptとXML」