今日の罠
NodeList nl = hoge.getElementsByTagName(... for(int i=0; i<nl.getLength(); i++) { Node node = nl.item(i); NodeList childs = node.getChildNodes(); for(int j=0; j<nl.getLength(); j++) { Node n = nl.item(j); // おかしい、nの内容が期待してたのと違う…… } }
どんなヘマをしたか手を取るようにわかりますな。内側のスコープに同名の変数を許さないJavaの仕様ってテンポラリ変数が大量に必要なとき面倒です。しかし、引っかかるほうがマヌケなのは言うまでもありません。
この程度のミスに気づくのに時間がかかったのが悲しい。内側のブロック見てるだけじゃ普通にNodeList使ってるようにしか見えないんだもの。思い込みは恐ろしいですな。(デバッガ使うまでもなくここが悪いことは分かっていて、その上でソースを眺めててもしばらく気づかないとは)