Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy XmlUtil.serialize()抛出一个';prolog'中不允许包含内容;尝试序列化GPathResult时出错_Xml_Groovy - Fatal编程技术网

Groovy XmlUtil.serialize()抛出一个';prolog'中不允许包含内容;尝试序列化GPathResult时出错

Groovy XmlUtil.serialize()抛出一个';prolog'中不允许包含内容;尝试序列化GPathResult时出错,xml,groovy,Xml,Groovy,Groovy的(1.7.3)XmlUtil.serialize(GPathResult)方法遇到了一个奇怪的问题。当我使用GPathResult调用它时,它抛出了一个“Content is not allowed in prolog”错误,但是groovy.util.Node序列化很好。下面是我正在尝试的非常简单的Groovy脚本: import groovy.xml.XmlUtil import groovy.xml.StreamingMarkupBuilder def xmlStr = "

Groovy的(1.7.3)XmlUtil.serialize(GPathResult)方法遇到了一个奇怪的问题。当我使用GPathResult调用它时,它抛出了一个“Content is not allowed in prolog”错误,但是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 ) )  
import groovy.xml.XmlUtil
导入groovy.xml.StreamingMarkupBuilder
def xmlStr=“”ver=“1.0”>条形图“”
//要漂亮地打印GPathResult--不起作用
def gpr=new XmlSlurper().parseText(xmlStr)
println XmlUtil.serialize(gpr)
println'trying groovy.util.Node'
//要漂亮地打印groovy.util.Node——很有效
def node=new XmlParser().parseText(xmlStr)
println(XmlUtil.serialize(节点))
这是我得到的输出:

[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>
[致命错误]:1:1:prolog中不允许包含内容。
错误:“prolog中不允许有内容。”
正在尝试groovy.util.Node
酒吧
我在MacOSXSnowLeopard上使用Groovy版本:1.7.3JVM:1.6.020


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

看起来像是一个bug,Groovy选择了错误的
serialize
方法在
XmlUtil

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

我在这里把它添加到了JIRA中:所以希望它能在未来的版本中得到修复,而你不需要演员阵容


[编辑]JIRA现在声明一个修复程序已经进入主干,并且将在1.7.4+中普遍可用。

您可以使用它作为Groovy XmlUtil的替代方案。

转换工作正常。感谢您的帮助和提交错误报告:)很高兴提供帮助:-)如果这是有效的答案,您能接受吗?干杯,祝你好运!哇,简单看起来不错。我会看一看,我相信它会在未来的项目中派上用场
println XmlUtil.serialize( (groovy.util.slurpersupport.GPathResult)gpr )