2017年1月28日土曜日

vol.232 JavaScriptでXMLデータ抽出

XML形式の文字列データをJavaScriptで解析して、データを抽出する方法をネットで色々探していましたが、なかなか見つからず。
しかしながら、良さげな方法2つを組み合わせたら、結果オーライで上手く目的のデータを抽出することに成功したので、備忘録として…。

例えば、こんなXML文字列データがあるとしまして…
そのXML文字列データがdataという変数に格納されているとします。
そして、パスワードである「abcd」のデータを取り出したい場合、下記のような書き方になります。
上記のコードは、XML文字列からパスワードの値だけを抽出してアラートで表示させています。
DomParseでXML文字列を解析(パース)して、nodeに読み込ませ、nodeから抽出してくるというやり方です。
仕組みとしては、親ノードがaccountタグになり、その子ノードがidタグ・passwordタグになります。
ポイントは、子ノードである、idタグ・passwordタグの要素である、"1234"と"abcd"もノードとして扱われること。
これを理解することにより、この方法で自在にXMLからデータを抽出することができます。
上記のことを踏まえて、5行目の
node.childNodes[1].childNodes[0].nodeValue
を分解すると…

node…親ノード(accountタグ)
childNodes[1]…子ノード(passwordタグ)
childNodes[0]…孫ノード("abcd")
nodeValue….(ドット)よりひとつ前のノードを表示

同じやり方にたどり着いた人は結構いるかもしれませんが、JavaScriptでXML文字列からデータを抽出できずにハマっている方は、ぜひ一度お試しあれ~。

ちなみに、XMLとJavaScriptのコードをハイライト表示&行番号付きで表示しましたが、やり方は、次の記事のネタになります。。

0 件のコメント:

コメントを投稿