4

如何从已解析的 html 文档中选择给定索引的特定元素。

例如: ...

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

我想选择第二个div,但在我看来 GPath 不像 Xpath 那样提供解决方案。

4

1 回答 1

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"

还可以在 div 节点上使用集合类型的方法,例如 .each/.find,例如:

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

编辑:

为了澄清我的答案,给定与我上面列出的示例结构相同但内容不同的 HTML,您始终可以使用数组索引 1 访问第二个 div:

xml.body.div[1]
于 2011-01-06T04:11:31.540 回答