Groovy XmlUtil.serialze () бросает 'Содержание, не позволяется в прологе' ошибку при попытке сериализировать GPathResult

Я встретился со странной проблемой с Groovy (1.7.3) XmlUtil.serialize (GPathResult) метод. Это бросает 'Содержание, не позволяется в прологе' ошибку, когда я называю его с GPathResult, но groovy.util. Узел сериализирует очень хорошо. Вот очень простой Сценарий 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>

Я использую Версию Groovy: 1.7.3 JVM: 1.6.0_20 на Snow Leopard Mac OS X

Кто-либо еще испытывает это?

5
задан strohs 30 June 2010 в 16:01
поделиться

2 ответа

Похоже на ошибку, из-за которой Groovy выбирает неправильный метод сериализации для выполнения в XmlUtil

. Если мы жестко его применили, он, похоже, сработает для меня (а для вас? )

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

Я добавил это в JIRA здесь: http://jira.codehaus.org/browse/GROOVY-4285 Так что, надеюсь, это будет исправлено в будущих выпусках, и вы выиграли ' не нужен гипс

[править] JIRA теперь заявляет, что исправление было внесено в основной канал и будет общедоступным в версии 1.7.4+

4
ответ дан 15 December 2019 в 06:14
поделиться

Вы можете просто использовать Simple в качестве альтернативы Groovy XmlUtil.

-1
ответ дан 15 December 2019 в 06:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: