HtmlUnit: извлекать текст из <span> после тега <a>

0

Я пытаюсь извлечь некоторые данные с веб-страницы через 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();

Но это не работает. Строка пуста, хотя отладчик показывает мне правильное значение в объекте studentsFieldList.

Любая помощь будет высоко оценен.

Теги:
dom
htmlunit

1 ответ

0

Я сам смог решить это. Проблема в том, что вы не можете получить доступ к методам вашего NodeList глубже, чем первый дочерний узел, хотя завершение кода вашей IDE говорит вам, что вы можете.

Когда я хочу получить строку FirstName в приведенном выше примере, мне нужно извлечь дочерний узел из NodeList:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню