HtmlUnit:在<a> tag</a> </span>之后从<span>中提取文本

时间:2014-01-05 07:20:30

标签: java html xml dom htmlunit

我试图通过HtmlUnit从网页中提取一些数据。这些数据是我的一些学生的名字和姓氏。数据的组织方式如下:

<td width='20%' align='left' valign='top' class='textstyle1'>
<a href='page.html' name='specName' class='seriousClass'>Secondname</a>, 
<span class='textstyle2'>Firstname</span></td><td width='15%' align='center' 
valign='top' class='textstyle2'>&nbsp;</td>

目前我只能提取这样的第二个名字:

List studentsFieldList = page2.getElementsByName("specName");
for (int i = 0; i<studentsFieldList.size(); i++){
String lastName     = ((Node)studentsFieldList.get(i)).getFirstChild().getNodeValue();
}

我无法获得名字。我试着用

String firstName     = ((Node)studentsFieldList.get(i)).getPreviousSibling().getFirstChild.getNodeValue();

但它不起作用。 String是空的,尽管调试器在studentsFieldList对象中显示了正确的值。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

我能够自己解决它。问题是,虽然IDE的代码完成告诉您,但是您无法访问NodeList的方法比第一个子节点更深入。

当我想在上面的例子中获取String firstName时,我必须从NodeList中提取子节点:

Node firstNameNode = (Node)studentsFieldList.get(i)).getPreviousSiblin();
String firstname = firstNameNode.getFirstChild().getNodeValue();