[JavaScript] JavaScriptでXMLを扱う際の問題点

問題1 検索が面倒

基本的にDOMで「getElementsByTagName()」などを使って、ひとつひとつ検索していくしかない。

解決策 XPathを使う

比較的新しいブラウザで搭載されているelement.evaluate()を使う。

古いブラウザをサポートするには、オープンソースの「JavaScript-XPath」を導入する。

問題2 作成が面倒

基本的に、ひとつひとつの要素をcreateElement()でつくり、親となる要素にappendChild()していくしかない。

ソースコードがごちゃごちゃしてしまって可読性が悪く、結果、バグにつながりやすい。

これといっていいライブラリがなく、jQueryを使う場合ですら煩雑。

両方への解決策

どう考えてもJSONを使ったほうがわかりやすく、構築しやすい(結果、保守性も高まる)。

そこで、「XML.ObjTree」のようなJSONとXMLを相互変換できるようなライブラリを利用する。

こうすれば通信にXMLを使う場合も、常にJSONの使いやすさで対応できる。

所感

少なくともJavaScriptでは、明らかにXMLよりJSONのほうが扱いやすい。最近はどの言語でもJSONに対応しているので、基本、それを使ったほうがいいだろう。

ただ、サーバサイドをXMLでの通信を前提に構築している場合も多いと思うので、上のようにコンバータを使えば、クライアントサイドはほぼJSONで統一できる。