閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

nodeValueではまる

とある XML 文書のとある要素の内容を取得するために、 element.nodeValue なんてやると null が返ってきてしまってはまりました。とある要素、というのは以下のようなもの。

<test>
  <elm>aaa</elm>
</test>

elm 要素の値 (ここでは aaa) が欲しかったので、次のようなコードを書きました。

var elmValue = document.getElementsByTagName("elm")[0].nodeValue;

で elmValue 変数の中身を見ると、 null になっていると。試行錯誤の結果、どうも XML 文書の場合、 elm 要素の子要素としてテキストノードができていて、そっちを見ないと、要素の中身(aaa)が取れないらしい。

var elm = document.getElementsByTagName("elm")[0];
var elmValue = elm.firstChild.nodeValue;

elm.firstChild がテキストノードで、この nodeValue を引っ張ってくると、「aaa」が出てくると。 解れば納得できる動作なのだけど、知らないと嵌るな、ということでメモ。