Piszę kilka skryptów modyfikujących pliki xml. Pliki, o których mowa, używają elementu xml: lang. Groovy (XmlSlurper) wydaje się wstawiać przestrzeń nazw tag0, której nie miałbym nic przeciwko, z wyjątkiem, że wydaje się, że przerwie to później przetwarzanie za pomocą XmlUtil.Groovy XML i przestrzeń nazw "xml:"
Przykład:
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)
skutkuje
[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 ma istnieć domyślnie i próbowałem dodanie go z .declareNamespace(), ale nie robi” wydaje się pomagać. Czuję, że brakuje mi czegoś oczywistego, ale Google nie był w stanie powiedzieć mi, co to jest.
Niestety to nie wywierać taki wpływ na mnie. Otrzymuję dokładnie ten sam błąd, co poprzednio. Jestem w świetnym 1.8.6, a ty? –
Po prostu sprawdziłem ponownie i masz rację ... Przepraszam ... usunę to i jeszcze raz zobaczę, czy mogę to rozwiązać ... –
@ErikAckerman Zaktualizowałem moją odpowiedź, aby pokazać jedyne rozwiązanie znalazłem –