You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Groovy中获取XML节点的原始XML字符串?

问题

给定XML结构:

<a>
  <b>
    <c>aaa</c>
    <d a="42"/>
  </b>
</a>

需要提取其中<b>节点对应的完整XML字符串:

<b>
  <c>aaa</c>
  <d a="42"/>
</b>

尝试使用XmlSlurper.text()方法时,仅返回文本内容"aaa",请问有没有办法不用XmlBuilder重新创建节点,直接获取该节点的原始XML?

已验证的解决方案

最终采用以下Groovy代码实现需求,无需重新构建节点即可输出目标XML:

StringWriter sw = new StringWriter()
XmlNodePrinter p = new XmlNodePrinter( new IndentPrinter( sw, '', false, false ), "'" )
p.namespaceAware = false
node.children().each p.&print

println sw

代码说明

  • 借助XmlNodePrinter直接将目标节点的子元素输出到StringWriter,跳过节点重建步骤
  • 初始化IndentPrinter时,将缩进字符串设为空,同时关闭自动换行和缩进检测,保证输出格式与原始节点一致
  • 关闭namespaceAware属性,避免不必要的命名空间处理干扰输出结果
  • 通过node.children().each p.&print遍历并打印<b>节点下的所有子元素,最终从StringWriter中得到完整的<b>节点XML内容

内容的提问来源于stack exchange,提问作者injecteer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:54:59