我试图通过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'> </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对象中显示了正确的值。
任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
我能够自己解决它。问题是,虽然IDE的代码完成告诉您,但是您无法访问NodeList的方法比第一个子节点更深入。
当我想在上面的例子中获取String firstName时,我必须从NodeList中提取子节点:
Node firstNameNode = (Node)studentsFieldList.get(i)).getPreviousSiblin();
String firstname = firstNameNode.getFirstChild().getNodeValue();