NekoHTMLを使用して一部のHTMLを解析しようとしています。XercesがSUN JRE v1.5とIBM J9 v1.5で異なる動作をする
問題は、以下のコードスニペットがSUN JDK 1.5.0_01
で実行されたときに問題なく動作します(これはsun jreでEclipseを使用しているときです)。しかし、同じことがIBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223ifx-20070323 (JIT enabled)
で実行された場合、それは機能しません(これは、開発用にIBM RADを使用しているときです)。
NodeList tags = doc.getElementsByTagName("td");
for (int i = 0; i < tags.getLength(); i++)
{
Element elem = (Element) tags.item(i);
// do something with elem
}
うまく動作すると、私はさらに処理できる "td"要素のリストを取得しています。 J9の場合、私はfor
ループに入っていません。
最新バージョンのNekoHTML(バンドルされているXerces jarsと一緒に)を使用しています。次のように上記のコードでdoc
タイプorg.w3.dom.Document
である(使用されるランタイム・クラスがorg.apache.html.dom.HTMLDocumentImpl
ある)
IBM J9の詳細は、次のとおり
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pwi32devifx-20070323 (ifix 117674: SR4 + 116644 + 114941 + 116110 + 114881))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223ifx-20070323 (JIT enabled)
J9VM - 20070322_12058_lHdSMR
JIT - 20070109_1805ifx3_r8
GC - WASIFIX_2007)
JCL - 20070131
任意のアイデア、提案または回避策が理解されます。ありがとう。
※forループには入りません*つまり、 'tags'は空のNodeListですか、例外がありますか? –
@Andreas:はい 'tags'は空のNodeListです。例外が発生した場合、 'try-catch'ブロック(スニペットの一部として投稿されていません)またはコンソールに表示されます。 – Favonius