Я нашел эту суперпрозрачную функцию XmlParser () .parseText (...).
Он отлично работает для меня без пространств имен ... теперь у меня есть следующий XML (SoapRequest):
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://xxx" xmlns:xsd="http://xxy"
xmlns:xsi="http://xxz">
<soap:Body>
<MG_Input xmlns="http://yxx">
<Accnr>001</Accnr>
[...]
Моя цель - получить Accnr через XmlParser. Я предположил, что это может работать следующим образом:
input = new File('c:/temp/03102890.xml-out')
def soapns = new groovy.xml.Namespace("http://xxx",'soap')
def xsdns = new groovy.xml.Namespace("http://xxy")
def xsins = new groovy.xml.Namespace("http://xxz")
def ordns = new groovy.xml.Namespace("http://yxx")
xml = new XmlParser().parseText(input.getText())
println xml[soapns.Envelope][soapns.Body][ordns.MG_Input][Accnr][0].text()
Но на самом деле это не работает ...
Кто-нибудь знает, как справиться с этим «легко»? Я просто не могу заставить его работать с примерами из Google ...