Groovy - XmlNodePrinter 打印空白文件

2024-04-21

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

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

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

def admins = root.user.findAll {[email protected] /cdn-cgi/l/email-protection().equals("admin")}
admins.each { admin ->
  admin.permission.findAll { [email protected] /cdn-cgi/l/email-protection().equals("RoleManagement") 
  }.each {
    it.@type = "AdminRoleManagement"
  }
}

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

Thanks


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

XmlSlurper.parse回报GPathResult

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

或者,您可以使用StreamingMarkupBuilder and do:

def smb = new StreamingMarkupBuilder().bind { mkp.yield root }
new File( 'output.xml' ).text = groovy.xml.XmlUtil.serialize( smb )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Groovy - XmlNodePrinter 打印空白文件 的相关文章

随机推荐

  • XSLT 仅当元素不存在时插入元素

    我有一个源文件
  • 原始类型“Bool”无法用任何文字表达

    我想让我的枚举轻松兼容 IBInspectable 所以为了简单起见 我尝试用类型来表示它Bool enum TopBarStyle Bool case darkOnLight case lightOnDark 但 Xcode 给了我 原始
  • ASP.NET 表单身份验证 Cookie 不会过期

    我在使用 ASP NET SQL 成员资格提供程序的网站上遇到问题 首次登录时一切正常 即 用户被定向到登录页面 并且在成功登录后 他们将被发送到他们请求的原始页面 但是 当他们关闭浏览器并重新打开浏览器后 身份验证 cookie 仍然存在
  • 想要在谷歌饼图图例中显示百分比数据

    I am using google charts API specifically pie chart in my code i want to show percentage which is displayed inside chart
  • 在Powershell中执行批处理文件

    我想从批处理文件执行以下命令 C OpenCover tools OpenCover Console exe register user target VS110COMNTOOLS IDE mstest exe targetargs tes
  • 带有 checkBoxEdit 列的 DevExpress XtraGrid 控件

    我有一个 DevExpressXtraGrid http devexpress com Products NET Controls WinForms Grid 具有三列和一个未绑定的 checkBoxEdit 列的控件 供用户在从网格中删除
  • 如何在 Java 中获取英国夏令时偏移 (BST)

    在英国 我想获取当前与 UTC GMT 的偏移量 目前偏移量是1小时 但似乎没有办法找到这个 Code TimeZone timeZone TimeZone getDefault logger debug Timezone ID is ti
  • 模板化 lambda 的显式实例化[重复]

    这个问题在这里已经有答案了 我刚刚遇到显式实例化模板 lambda 的问题 下面的代码无法编译 但我无法弄清楚这种情况下出了什么问题
  • 如何删除所有超过 2 天的空文件夹?

    我制作了一个脚本 删除路径中带有子文件夹的所有空文件夹 现在我必须做的是 如果一个文件夹是 2 天前创建的 并且它是空的 则应该将其与其他早于 2 天的空文件夹一起删除 如果不是 则不应删除它 我还需要 想要将已删除的文件夹写入日志中 我用
  • ERM:三元关系中的基数

    如何读取和 或指定实体关系模型 陈表示法 三元关系中的基数 最小 最大 例如 一位领导与他的相关员工一起考察了多项资格认证 现在 我想知道如何在最小 最大 表示法中指定基数 这是给定基数的另一个示例 我想知道如何阅读它 三元关系可以解读为
  • 选择组合框项目时启用文本框

    我想在选择组合框项时启用文本框 请注意 组合框项目未定义 而是我在组合框中使用项目源来获取组合框项目的列表 我想在选择组合框项目时更改文本框的属性 评论粘贴到原始问题
  • 为什么会话 cookie 在从域提供服务时有效,但在使用 IP 时却无效?

    我有一个 Flask 应用程序 其中的会话在我的本地开发计算机上运行良好 但是 当我尝试将其部署在亚马逊服务器上时 会话似乎不起作用 更具体地说 未设置会话cookie 不过 我可以设置普通的 cookie 我确保我有一个静态安全密钥 正如
  • 为对象序列提供 JsonFormat

    我试图在这里找到一些帮助来应用 DefaultJsonProtocol 的 JsonFormat 扩展 包含对象序列的类 所以对于课程来说 class Person val name String val adresses Seq Adre
  • 如何在oracle DB中存储日文字符?

    我想将日语 或任何语言 字符存储在我的 Oracle 数据库表的一列中 我使用 varchar2 作为数据类型 当我尝试将此字符 插入到该列时 它存储为 不知道该怎么办 需要帮忙 Note 我尝试将数据类型更改为 nvarchar2 仍然不
  • 适用于 Windows 的 SVN 挂钩

    我用谷歌搜索了一下 发现确实没有适用于 Windows 的 SVN hooks 资源 所以我想我应该在这里创建一个维基来集中它 如果您贡献 请务必注明 钩子的名称 脚本的作用 实际脚本 注意 我怀疑发布史诗般的脚本不会有用 防止提交空注释
  • 具有 Jetty 连接器的 Restlet 2.0.8 不会恢复 SSL 会话,而 Simple 连接器会恢复 SSL 会话

    有谁知道这是为什么 或者如何解决它 我正在使用 android 通过 httpclient 连接 简单连接器恢复连接很好 但 Jetty 每次都会执行新的握手 代码是相同的 这只是我在构建路径上获得的连接器 不断地重做握手会消耗大量的数据和
  • 如何使弹丸转弯时带有弧线

    我有一门大炮 可以以抛物线弧线发射子弹 现在 当我发射子弹时 子弹的旋转速度与从大炮中发射时的旋转速度相同 如何使子弹在空气中飞行时沿着弧线旋转 我尝试了以下作为在项目符号上运行的脚本 附件1 public class PointingBe
  • SQL Server Reporting Services 2008 R2 始终显示登录提示

    每当我尝试通过 URL 访问 SSRS 2008 R2 即在网络上发布后 时 访问报告时总是显示登录提示 开发环境中不会出现该问题 如何防止在我尝试访问报告时显示此登录提示 目前 我们正在通过提供用户名和密码来解决这个问题
  • 模拟器未切换到下一个活动

    我对 Android 编程完全陌生 我正在做一个简单的应用程序 其中显示启动屏幕 然后显示登录屏幕 问题是模拟器不会超出启动屏幕 Android 清单
  • Groovy - XmlNodePrinter 打印空白文件

    我正在尝试将格式化的 xml 打印到文件中 但我的 XmlNodePrinter 仅打印一个空白文件 我认为我传入的 xml 对象已正确填充 我可以使用 StreamingMarkupBuilder 打印它 但它的格式全部在一行上 我不知道