Groovy XmlSlurper获取没有子节点的节点的值

时间:2015-04-14 13:42:33

标签: groovy html-parsing nodes xmlslurper

我正在解析HTML并尝试使用父节点本身的值,而没有子节点的值。

HTML示例:

<html>
    <body>
        <div>
             <a href="http://intro.com">extra stuff</a>
             Text I would like to get.
             <a href="http://example.com">link to example</a>
        </div>
    </body>
</html>

代码:

def tagsoupParser = new org.ccil.cowan.tagsoup.Parser()
def slurper = new XmlSlurper(tagsoupParser)
def htmlParsed = slurper.parseText(stringToParse)

println htmlParsed.body.div[0]

但是上面的代码返回:

  

额外的东西我希望得到的文字。链接到示例

如何才能获得没有子节点的父节点值?例如:

  

我想要的文字。

P.S: 我尝试通过子串来删除额外的元素,但事实证明它是不可靠的。

1 个答案:

答案 0 :(得分:2)

如果您切换为使用XmlParser而不是XmlSlurper,则可以执行以下操作:

println htmlParsed.body.div[0].localText()[0]

假设你是on Groovy 2.3+