gpt4 book ai didi

xml - Groovy - XmlNodePrinter 打印空白文件

转载 作者:数据小太阳 更新时间:2023-10-29 02:36:54 26 4
gpt4 key购买 nike

我正在尝试将格式化的 xml 打印到一个文件,但我的 XmlNodePrinter 只打印一个空白文件。我认为我传入的 xml 对象已正确填充。我可以使用 StreamingMarkupBuilder 打印它,但它的格式全部在一行上。我不确定为什么我不能使用 XmlNodePrinter。这是我的代码的相关部分。

代码的目标是修改一个xml配置文件。我必须根据特定权限进行查找/替换。

File file = new File("input.xml")
def root = new XmlSlurper().parse(file)

def admins = root.user.findAll {it.@role.text().equals("admin")}
admins.each { admin ->
admin.permission.findAll { it.@type.text().equals("RoleManagement")
}.each {
it.@type = "AdminRoleManagement"
}
}

String filename = "output.xml"
new XmlNodePrinter(new PrintWriter(filename)).print(root)

谢谢

最佳答案

我相信 XmlNodePrinter 需要一个 Node 而不是 GPathResult

XmlSlurper.parse 返回 GPathResult

所以显而易见的解决方案是使用 XmlParser 而不是 XmlSlurper

或者,您可以使用 StreamingMarkupBuilder 并执行以下操作:

def smb = new StreamingMarkupBuilder().bind { mkp.yield root }
new File( 'output.xml' ).text = groovy.xml.XmlUtil.serialize( smb )

关于xml - Groovy - XmlNodePrinter 打印空白文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9977493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com