Groovy XmlSlurper获取没有子节点的节点的值 [英] Groovy XmlSlurper get value of the node without children

查看:180
本文介绍了Groovy XmlSlurper获取没有子节点的节点的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



HTML示例:

$ b $解析HTML并试图为父节点本身赋值,没有子节点的值。 b

 < html> 
< body>
< div>
< a href =http://intro.com>额外的东西< / a>
我希望得到的文本。
< a href =http://example.com>连结至范例< / 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]

然而上面的代码会返回:


额外的东西我想要的文字。链接到示例


我怎样才能得到没有孩子的父节点值?例如:


我想要的文字。


PS:
我试图通过子字符串去除多余的元素,但它证明是不可靠的。

如果您切换到使用 XmlParser 而不是 XmlSlurper ,您可以这样做:

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

假设您是 Groovy 2.3+


I'm parsing HTML and trying to value of a parent node itself, without values of the children nodes.

HTML example:

<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>

Code:

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

println htmlParsed.body.div[0]

However above code returns:

extra stuff Text I would like to get. link to example

How can I get only parent node value without children? Example:

Text I would like to get.

P.S: I tried removing extra elements by doing substring but it proves to be unreliable.

解决方案

If you switch to using XmlParser instead of XmlSlurper, you can do:

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

Assuming you are on Groovy 2.3+

这篇关于Groovy XmlSlurper获取没有子节点的节点的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆