根据我提出的其他问题的帮助,我有这个常规的片段:
NodeList nodes = (NodeList)xpath.evaluate( xpathQuery, records, XPathConstants.NODESET );
return nodes.collect { node -> node.getTextContent() }
允许我在xpathQuery
上执行records
并获得结果。
我现在要做的只是返回(作为字符串)结果的原始xml(而不是文本内容)(我意识到这不会产生有效的xml文档)。
这样:
xml = "<root><apple><color>RED</color></apple>…</root>"
xpathQuery = "/root/apple[1]"
将返回:
"<apple><color>RED</color></apple>"
(没有封闭的<apple>
标签也没问题。有一种简单的方法可以做到这一点吗?
或者失败了,还有另一种方法可以达到这个目的吗?
答案 0 :(得分:1)
这不是很优雅,但可能有用:
使用此:
concat('<apple><color>', //root/apple[1]/color, '</color></apple>')
如果您知道结构不会改变,或者<apple>
中的子元素数量更复杂,请使用:
//root/apple[1]/node()
为您提供所有子节点,并使用groovy的.each函数迭代节点,并创建字符串填充,并将它们与原始//root/apple[1]/color
结果组合。 / p>