【发布时间】:2011-08-30 17:12:43
【问题描述】:
我先用http.get保存一个txt文件:
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}
}
然后在XmlSlurper().parse的outputFileName中使用新创建的文件,如下:
def inputFile = new File(outputFileName)
def domain = new XmlSlurper().parse(inputFile)
但是在执行 new XmlSlurper().parse(inputFile) 时出现错误:
Caught: org.xml.sax.SAXParseException: White spaces are required between publicId and systemId.
我注意到使用 http.get 创建的文本文件 outputFileName 似乎是 HTML 文件而不是 XML 文件。所以我复制并粘贴了它应该包含的 XML 代码到 outputFileName 中,跳过了代码的第一部分,只运行了 XmlSlurper().parse() 位并且它工作了。
outputFileName 应该是一个 xml 文件吗?它有很多 HTML 标签。
提前致谢! :D
【问题讨论】:
标签: groovy xmlslurper