Как выбрать из проанализированного html-документа определенный элемент с учетом его индекса.
Например: ...
<div>div1</div>
<div>div2</div>
Я хочу выбрать второй div
, но мне кажется, что GPath не предлагает такого решения, как Xpath.
Как выбрать из проанализированного html-документа определенный элемент с учетом его индекса.
Например: ...
<div>div1</div>
<div>div2</div>
Я хочу выбрать второй div
, но мне кажется, что GPath не предлагает такого решения, как Xpath.
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"
Вы также можете использовать методы типа коллекции на узле div, такие как .each/.find, например:
xml.body.div.find { it.text() == "div2" }
РЕДАКТИРОВАТЬ:
Чтобы немного пояснить мой ответ, учитывая HTML в той же структуре, что и пример, который я перечислил выше, но с различным содержимым, вы всегда можете получить доступ ко второму div, используя индекс массива 1:
xml.body.div[1]