【发布时间】:2011-05-28 17:17:40
【问题描述】:
我正在尝试使用 NekoHTML 解析一些 HTML。
问题是,当在SUN JDK 1.5.0_01 上执行以下代码 sn-p 时,它工作正常(这是当我使用带有 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块中捕获(未作为 sn-p 的一部分发布)或显示在控制台上。