【问题标题】:I need a GPath query to select a node using a numeric index我需要一个 GPath 查询来使用数字索引选择一个节点
【发布时间】:2011-01-06 03:19:48
【问题描述】:

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

例如: ...

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

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

【问题讨论】:

    标签: groovy xml-parsing gpath


    【解决方案1】:
    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]
    

    【讨论】:

    • 我不知道 div 的内容,但我知道对我来说重要的信息在第二个...
    • 我编辑了我的答案以澄清一点。断言只是为了显示它访问了哪些内容。使用 div[1] 应该可以得到第二个 div 节点。
    猜你喜欢
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多