He encontrado un problema extraño con el método XmlUtil.serialize (GPathResult) de Groovy (1.7.3). Lanza un error de 'El contenido no está permitido en Prolog' cuando lo llamo con un GPathResult, pero Groovy.util.Node está serializando muy bien. Aquí está el script muy simple maravilloso que estoy tratando:Groovy XmlUtil.serialze() lanza un error de "Contenido no permitido en prólogo" al intentar serializar un GPathResult
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))
Ésta es la salida me sale:
[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>
estoy usando Groovy Versión: 1.7.3 JVM: 1.6.0_20 en Mac OS X Snow Leopard
¿Alguien más está experimentando esto?
el casting funcionó. Gracias por la ayuda y por enviar el informe de error :) – strohs
Me complace ayudar :-) Si esta fue la respuesta válida, ¿puedes aceptarlo así? Saludos, y buena suerte! –
simplemente una actualización, esto de hecho fue corregido en maravilloso 1.7.4 – strohs