jjkingの日記: DOM にはまる - 文字列取得
日記 by
jjking
先週末はあるDOMノードに含まれる文字列を取得するというのにはまってしまった。たとえば、Nameエレメントの中にある文字列 'hello'というのを取る場合自分は次のようなメソッドに Name エレメントを引数で渡して取得している。
- public static String getString(Element elem)
{
return elem.getFirstChild() != null ? elem.getFirstChild().getNodeValue() : null;
}
今まで、いろんな環境で動いてきたコードだったので信頼しきっていたのだが、ある客先でエレメント中の文字列が完全に取れないという現象が起きた。症状としては先の例で'hello'では無く'hel'のように一部分しか取れないというものだった。JavaやDOMのライブラリはすべて客先とあわせてあるはずなのに一体何が?と思いつつ、とりあえず次のようなパッチで回避。
- public static String getString(Element elem)
{
return XPathAPI.eval(elem, ".").str();
}
でも、XPathAPI は遅そうだし、ちゃんと調査して修正せねば。
DOM にはまる - 文字列取得 More ログイン