Sto scrivendo un paio di script per modificare i file xml. I file in questione utilizzano l'elemento xml: lang. Groovy (XmlSlurper) sembra stia inserendo uno spazio dei nomi tag0, che non mi dispiacerebbe troppo, tranne che sembra interrompere l'elaborazione successiva con XmlUtil.XML Groovy e lo spazio dei nomi "xml:"
Un esempio:
import groovy.xml.StreamingMarkupBuilder
import groovy.xml.XmlUtil
String source = """<?xml version='1.0' encoding='UTF-8'?>
<root>
<one xml:lang="en">First</one>
<one xml:lang="de">Second</one>
</root>
"""
def root = new XmlSlurper().parseText(source).declareNamespace(xml: "http://www.w3.org/XML/1998/namespace")
println root
String xml = new StreamingMarkupBuilder().bind{
mkp.xmlDeclaration()
out << root
}
println xml
println XmlUtil.serialize(xml)
risultati in
[Fatal Error] :2:44: The value of the attribute "prefix="xmlns",localpart="tag0",rawname="xmlns:tag0"" is invalid. Prefixed namespace bindings may not be empty.
xml: namespace è suppone l'esistenza di default, e ho provato ad aggiungere con .declareNamespace(), ma doesn' t sembra aiutare. Mi sento come se mi mancasse qualcosa di ovvio, ma Google non è stato in grado di dirmi di cosa si tratta.
Purtroppo non è produrre questo effetto per me. Ricevo esattamente lo stesso errore di prima. Sono entusiasta di 1.8.6, e tu? –
Appena controllato di nuovo, e hai ragione ... Scusa ... lo rimuoverò, e ne avrò un'altra a vedere se riesco a risolverlo ... –
@ErikAckerman Aggiornato la mia risposta per mostrare l'unica soluzione I trovato –