Groovy Jsoup-如何使用Jsoup获得直接子级而不是子级?
XML如下所示,我只关心Groovy Jsoup-如何使用Jsoup获得直接子级而不是子级?,groovy,jsoup,Groovy,Jsoup,XML如下所示,我只关心的第一级,注意:在子节点中,也有相同的节点。这就是问题所在 <a> <b>b1</b> <b>b2</b> <d> <a> <b>d_a_b1</b> </a> <a> <b>d_a_b2</b>
的第一级,注意:在子节点
中,也有相同的节点。这就是问题所在
<a>
<b>b1</b>
<b>b2</b>
<d>
<a>
<b>d_a_b1</b>
</a>
<a>
<b>d_a_b2</b>
</a>
</d>
<c>c</c>
</a>
实际结果是:
b1
b2
d_a_b1
d_a_b2
有人能帮忙选择第一级节点吗?任何意见都非常感谢 我不熟悉groovy,但是您可以像这样选择第一级子级
Document doc = Jsoup.parse(s)
Element a = doc.select("a").first()
System.out.println(doc)
Elements aChildren = a.children()
for(Element element : aChildren) {
println element.select("b").text()
}
但我认为你的例子还有另一个问题。Jsoup将如下解析您的XML:
<html>
<head></head>
<body>
<a> <b>b1</b> <b>b2</b>
<d>
</d></a>
<a> <b>d_a_b1</b> </a>
<a> <b>d_a_b2</b> </a>
<c>
c
</c>
</body>
</html>
b1 b2
d_a_b1
d_a_b2
C
正如您所看到的,您的
标记在标记
之后立即关闭。这是因为HTML中不存在嵌套的
(这意味着嵌套链接不符合逻辑),JSoup将为您修复它
我希望这会有所帮助。正如我所说,我不熟悉
groovy
。因此,我可能会犯一些语法错误或逻辑错误。谢谢,我只是使用了这个策略:Element a=doc.select(“a”)。首先()也感谢您的详细解释。
Document doc = Jsoup.parse(s)
Element a = doc.select("a").first()
System.out.println(doc)
Elements aChildren = a.children()
for(Element element : aChildren) {
println element.select("b").text()
}
<html>
<head></head>
<body>
<a> <b>b1</b> <b>b2</b>
<d>
</d></a>
<a> <b>d_a_b1</b> </a>
<a> <b>d_a_b2</b> </a>
<c>
c
</c>
</body>
</html>