2014-01-05 50 views
0

我想通過HtmlUnit從網頁中提取一些數據。這些數據是我的一些學生的名字和姓氏。該數據的組織是這樣的:HtmlUnit:從<span>中提取文本<a>標記

<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> 

此刻,我只能提取secondname這樣的:

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(); 

但它不起作用。字符串是空的,儘管調試器在studentsFieldList對象中顯示了正確的值。

任何幫助將不勝感激。

回答

0

我能夠自己解決它。問題是,儘管IDE的代碼完成告訴您,您可以訪問NodeList的方法,但不能訪問比第一個子節點更深的方法。

當我想要得到的字符串的firstName在上面的例子中,我不得不從節點列表中提取女兒節點:

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