とある 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」が出てくると。 解れば納得できる動作なのだけど、知らないと嵌るな、ということでメモ。