Сначала я сохраняю текстовый файл, используя http.get:
http.get(path: path,
contentType: TEXT,
query: [id:dapId, instance:alias, format:'xml', file:portalFile]) {resp, reader ->
println "response status: ${resp.statusLine}"
println 'Headers: -----------'
resp.headers.each { h ->
println " ${h.name} : ${h.value}"
}
new File(outputFileName).withWriter{out -> out << reader}
}
А затем используйте только что созданный файл в outputFileName в XmlSlurper (). Parse, как показано ниже:
def inputFile = new File(outputFileName)
def domain = new XmlSlurper().parse(inputFile)
Но я получаю сообщение об ошибке при выполнении нового XmlSlurper (). Parse (inputFile):
Caught: org.xml.sax.SAXParseException: White spaces are required between publicId and systemId.
Я заметил, что текстовый файл outputFileName, создаваемый с помощью http.get, кажется HTML-файлом, а не XML-файлом. Поэтому я скопировал и вставил код XML, который он должен содержать, в outputFileName, пропустил первую часть кода и запустил только бит XmlSlurper (). Parse (), и он заработал.
Является ли outputFileName файлом xml? В нем много HTML-тегов.
Заранее спасибо! : D