尝试序列化 GPathResult 时,Groovy XmlUtil.serialze() 抛出“序言中不允许内容”错误

2023-12-21

我在 Groovy 的 (1.7.3) XmlUtil.serialize( GPathResult ) 方法中遇到了一个奇怪的问题。当我使用 GPathResult 调用它时,它会抛出“序言中不允许内容”错误,但 groovy.util.Node 序列化得很好。这是我正在尝试的非常简单的 Groovy 脚本:

import groovy.xml.XmlUtil
import groovy.xml.StreamingMarkupBuilder

def xmlStr = """<?xml version="1.0" encoding="UTF-8"?><stuff>ver="1.0"><properties><foo>bar</foo></properties></stuff>"""

//to pretty print GPathResult -- NOT WORKING
def gpr = new XmlSlurper().parseText( xmlStr )
println XmlUtil.serialize( gpr )

println 'trying groovy.util.Node'
//to pretty print groovy.util.Node -- WORKS
def node = new XmlParser().parseText( xmlStr )
println( XmlUtil.serialize( node ) )  

这是我得到的输出:

[Fatal Error] :1:1: Content is not allowed in prolog.
ERROR:  'Content is not allowed in prolog.'
<?xml version="1.0" encoding="UTF-8"?>
trying groovy.util.Node
<?xml version="1.0" encoding="UTF-8"?>
<stuff ver="1.0">
 <properties>
  <foo>bar</foo>
 </properties>
</stuff>

我在 Mac OS X Snow Leopard 上使用 Groovy 版本:1.7.3 JVM:1.6.0_20

还有其他人遇到过这种情况吗?


看起来像是 Groovy 选择错误的错误serialize执行的方法XmlUtil

如果我们硬铸它,它似乎对我有用(对你有用吗?)

println XmlUtil.serialize( (groovy.util.slurpersupport.GPathResult)gpr )

我已将其添加到 JIRA 中:http://jira.codehaus.org/browse/GROOVY-4285 http://jira.codehaus.org/browse/GROOVY-4285所以希望它会在未来的版本中得到修复,并且你不需要演员阵容

[编辑] JIRA 现在声明修复已进入主干,并将在 1.7.4+ 中普遍可用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试序列化 GPathResult 时,Groovy XmlUtil.serialze() 抛出“序言中不允许内容”错误 的相关文章

  • 如何为新任务类型扩展 Gradle 任务的行为?

    我想为一些测试任务设置一些东西 更具体地说 我想添加一些环境变量和一些系统属性 也许还有一些其他内容 例如 依赖项 或 workingDir 与常规的Test任务我可以做到这一点 task test1 type Test dependsOn
  • 在 XML/XSL 文件中包含 XML 文件

    所以目前我正在做一些 XML gt XSLT gt HTML5 CSS3 工作 现在我有一个 menu xml 文件 我想将其包含在 XSL 文件或 XML 页面中 我已经进行了大量搜索 但无法找到直接的答案 那么 如何将一个 XML 文件
  • 如何将用户输入密码与凭据密码进行比较

    我有一个脚本化管道 它使用以下命令请求用户的密码input函数并将其与用户保存的凭据密码进行比较 如果用户输入的是一个类型string然后就可以了 但是 当我将输入类型更改为password 因此当用户键入它时 它在屏幕上不可见 它会失败并
  • 横向模式下视频视图不是全屏

    我正在使用用 xml 设计的视频视图 该视频在纵向模式下为全屏 但当切换到横向模式时 它会左对齐 并且宽度和高度都会换行 而不是全屏 我参考了这些 但仍然没有解决这个问题 全屏视频视图未居中 https stackoverflow com
  • 使用 boost 将命名空间添加到 XML

    我正在尝试使用 boost 生成 xml 到目前为止一切顺利 但是生成的 xml 需要有一个命名空间 所以而不是
  • 创建自定义弹出对话框菜单

    我目前正在尝试在单击菜单按钮时实现弹出菜单 如下图所示 我尝试了 popupwindow 方法 但无法实现确切的情况 这就是我正在尝试的方式 private View OnClickListener showPopupWindow retu
  • 如何在 python 中更新/修改 XML 文件?

    我有一个 XML 文档 我想在它包含数据后对其进行更新 我考虑过打开 XML 文件 a 追加 模式 问题是新数据将写入根结束标记之后 如何删除文件的最后一行 然后从该点开始写入数据 然后关闭根标签 当然 我可以读取整个文件并进行一些字符串操
  • Odoo:使得无法在树视图中编辑记录?

    在 Odoo 中 您可以使其无法从树视图中创建或删除记录 如下所示
  • XML 模式不区分大小写的简单类型字符串枚举

    我的 XML 架构 xsd 文件中需要不区分大小写的字符串枚举类型 我可以通过执行以下操作来不区分大小写
  • 即使只有一个,是否也可以始终以数组形式获取 XML 节点?

    我正在使用空手道测试 SOAP Web 服务 其中一种方法是 根据请求 响应可以返回一个或多个巧合 将 XML 响应转换为 JSON 时 如果只有一个结果 则将其解释为对象 但如果有多个结果 则将其解释为数组 有什么方法可以使给定路径始终以
  • 合并2个XML文件并修改属性值

    我有两个 xml 文件 我想将它们合并并用一些属性进行一些算术 请提供一些想法 我正在使用标准 xslthttp informatik hu berlin de merge http informatik hu berlin de merg
  • 将 Java 对象图保存为 XML 文件

    将任意 Java 对象图保存为 XML 文件 并能够在以后重新水合对象 的最简单易用的技术是什么 这里最简单的方法是序列化对象图 Java 1 4 内置了对 XML 序列化的支持 我成功使用的一个解决方案是 XStream http x s
  • XAMARIN - 添加来自 youtube 的视频

    我搜索如何从 youtube 添加视频的信息 例如 我想从一些 YouTube 链接添加视频 我认为它应该在网络视图中 但我需要一些详细信息 因为我找不到有关我的问题的任何信息 您可以使用 webview 播放 youtube 视频 str
  • python中的编码检测库[重复]

    这个问题在这里已经有答案了 这在某种程度上与我的问题有关here https stackoverflow com questions 2305997 unicodedecodeerror problem with mechanize 我处理
  • XML 架构:我可以使某些属性的值成为必需的,但仍允许使用其他值吗?

    注意 我无法更改收到的 XML 的结构 我只能更改验证它的方式 假设我可以像这样获取 XML
  • 在Android上使用XStream时如何注释order字段?

    我需要从 Android 上的 java 对象生成 XML XML 节点必须位于 确定的顺序 这是我得到的 这些字段按字母顺序排列
  • 从 SQL XML 列中的元素获取属性名称

    对于此 xml 在 SQL 2005 XML 列中
  • python:xml.etree.ElementTree,删除“命名空间”

    我喜欢 ElementTree 解析 xml 的方式 特别是 Xpath 功能 我有一个带有嵌套标签的应用程序的 xml 输出 我想按名称访问此标签而不指定名称空间 这可能吗 例如 root findall molpro job 代替 ro
  • 使用 XPath 忽略/跳过已知或所有从属标签

    我使用 XPath 和 Hpple libxml2 来解析 iOS iPhone 操作系统中的 HTML 我现在想忽略某个标签 例如粗体标签 b 解析文档时 例如从代码来看 div foo b bar b div 应选择字符串 foo 和
  • 安卓。 onEditorAction 从未被调用

    我正在尝试捕捉从屏幕上移除键盘的事件 并且我正在使用OnEditorActionListener班级 然而 其onEditorAction方法永远不会被调用 这是我的 XML 格式的 EditText

随机推荐