[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で統一できる。