基于我问过的其他问题的帮助,我得到了这个很棒的代码片段:
NodeList nodes = (NodeList)xpath.evaluate( xpathQuery, records, XPathConstants.NODESET );
return nodes.collect { node -> node.getTextContent() }这允许我在records上执行xpathQuery并获得结果。
我现在要做的就是返回(以字符串形式)结果的原始xml (而不是文本内容)(我意识到这不会产生有效的xml文档)。
这样:
xml = "<root><apple><color>RED</color></apple>…</root>"
xpathQuery = "/root/apple[1]"将返回:
"<apple><color>RED</color></apple>"(没有包含的<apple>标记也可以)。有没有简单的方法可以做到这一点?
或者,如果失败了,有没有其他方法来实现这一点?
发布于 2012-11-10 00:08:00
这不是很优雅,但可能会很有用:
使用以下命令:
concat('<apple><color>', //root/apple[1]/color, '</color></apple>')如果您知道结构不会更改,或者对于<apple>中数量未知的更复杂的子元素,可以使用:
groovy提供所有子节点,并使用//root/apple[1]/node()的.each函数迭代节点,创建字符串填充,然后将它们与原始的//root/apple[1]/color结果组合在一起。
https://stackoverflow.com/questions/8726414
复制相似问题