Groovy XmlSlurper获取没有子节点的节点的值 [英] Groovy XmlSlurper get value of the node without children
本文介绍了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屋!
查看全文