Tôi đã gặp phải sự cố lạ với phương thức XmlUtil.serialize (GPathResult) của Groovy (1.7.3). Nó ném một lỗi 'Nội dung không được phép trong prolog' khi tôi gọi nó với một GPathResult, nhưng groovy.util.Node đang tuần tự hóa tốt. Đây là rất đơn giản Groovy Script tôi đang cố gắng:Groovy XmlUtil.serialze() đang ném một lỗi 'Nội dung không được phép trong prolog' khi cố gắng sắp xếp một 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))
Đây là sản phẩm tôi nhận được:
[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>
Tôi đang sử dụng Groovy Version: 1.7.3 JVM: 1.6.0_20 trên Mac OS X Snow Leopard
Có ai khác đang trải nghiệm điều này không?
hoạt động đúc. Cảm ơn sự giúp đỡ và gửi báo cáo lỗi :) – strohs
Rất vui được trợ giúp :-) Nếu đây là câu trả lời hợp lệ, bạn có thể chấp nhận nó không? Chúc mừng, và chúc may mắn! –
chỉ là một bản cập nhật, điều này đã thực sự cố định trong groovy 1.7.4 – strohs