2011-01-06 3 views
4

Как выбрать из проанализированного html-документа определенный элемент с учетом его индекса.Мне нужен запрос GPath для выбора узла с помощью числового индекса

Например: ...

<div>div1</div> 
<div>div2</div> 

Я хочу, чтобы выбрать второй div, но мне кажется, GPATH не предлагает решения, как Xpath делает.

ответ

7
def html = """ 
<html> 
    <head> 
    <title>test</title> 
    </head> 
    <body> 
    <div>div1</div> 
    <div>div2</div> 
    </body> 
</html>""" 

def xml = new XmlSlurper().parseText(html) 

assert xml.body.div[0].text() == "div1" 
assert xml.body.div[1].text() == "div2" 

Вы можете также использовать методы типа сбора на узле сНа, такие как .each/.find, например:

xml.body.div.find { it.text() == "div2" } 

EDIT:

Чтобы прояснить мой ответ немного, учитывая HTML в той же структуре, что и образец, указанный выше, но с различным содержимым, вы всегда можете получить доступ ко второму div, используя индекс массива 1:

xml.body.div[1] 
+0

я не знаю содержание divs, но я знаю, что информация, которая важна для меня, во втором ... – SomeEUGuy

+0

Я отредактировал свой ответ, чтобы немного разъяснить его. Утверждения были только там, чтобы показать, к какому контенту он обратился. Использование div [1] должно предоставить вам второй div-узел. –

 Смежные вопросы

  • Нет связанных вопросов^_^