Я пытаюсь извлечь некоторые данные с веб-страницы через 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();
Но это не работает. Строка пуста, хотя отладчик показывает мне правильное значение в объекте studentsFieldList.
Любая помощь будет высоко оценен.
Я сам смог решить это. Проблема в том, что вы не можете получить доступ к методам вашего NodeList глубже, чем первый дочерний узел, хотя завершение кода вашей IDE говорит вам, что вы можете.
Когда я хочу получить строку FirstName в приведенном выше примере, мне нужно извлечь дочерний узел из NodeList:
Node firstNameNode = (Node)studentsFieldList.get(i)).getPreviousSiblin();
String firstname = firstNameNode.getFirstChild().getNodeValue();