Xpath结果按元素中的文本过滤

时间:2017-12-15 10:30:07

标签: xml xpath nodes

我正在尝试根据元素中的文本返回xpath结果。

这是我目前的表达方式: // S:车身/ NS:2hentArsrapporterResponse /返回/子:: * [文本()=' 2016']

然而它只返回一个元素:Element =' 2016

如果元素包含文本' 2016'表达式应该返回返回节点中的所有元素。有人可以帮我正确表达吗? enter image description here

1 个答案:

答案 0 :(得分:1)

这里返回所有匹配的<return>节点可能更容易。既然你想要所有的儿童标签,在外面有一个额外的包装标签可能不会是一个问题,它也会让你有一个更好的方法来保持你的输出有条理。为此,我们可以直接过滤<return>节点:

//S:Body/ns:2hentArsrapporterResponse/return[antallVersjoner[text()='2016'] or ar[text()='2016'] or ...]

此解决方案显然取决于列出可能匹配的所有可能的子节点。如果您有许多子节点,则此方法可能不是最佳的。