加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

groovy – 解析xml的问题

发布时间:2020-12-14 16:28:11 所属栏目:大数据 来源:网络整理
导读:我是Groovy的新手,我正在尝试解析有效??的休息资源和无效资源. 例如: 这段代码工作正常 – def entity = new XmlSlurper().parse('http://api.twitter.com/1/users/show/slashdot.xml')println entity.name()println entity.screen_name.text() 当我运行它
我是Groovy的新手,我正在尝试解析有效??的休息资源和无效资源.
例如:

这段代码工作正常 –

def entity = new XmlSlurper().parse('http://api.twitter.com/1/users/show/slashdot.xml')
println entity.name()
println entity.screen_name.text()

当我运行它时,我得到输出:

user
slashdot

但是当我将无效的url传递给xmlSlurper时,就像这样

def entity = new XmlSlurper().parse('http://api.twitter.com/1/users/show/slashdotabc.xml')
println entity.name()
println entity.screen_name.text(

)

我收到此错误消息:

Caught: java.io.FileNotFoundException: http://api.twitter.com/1/users/show/slashdotabc.xml
    at xmltest.run(xmltest.groovy:1)

虽然url返回一个哈希代码(如下所示),但是我想解析并显示它.

<hash>
<request>/1/users/show/slashdotabc.xml</request>
<error>Not found</error>
</hash>

如何解析返回404但有错误信息的URL?

任何帮助将不胜感激.


谢谢&问候,
弗兰克科弗特

解决方法

您想要查看的响应可以在URL连接的errorStream而不是inputStream中找到.幸运的是,给定InputStream,XmlSlurper.parse也可以读取InputStream.

这是一个示例,当您没有获得200状态时切换到读取errorStream:

def con = new URL("http://api.twitter.com/1/users/show/slashdotaxxxbc.xml").openConnection()
def xml = new XmlSlurper().parse(con.responseCode == 200 ? con.inputStream : con.errorStream)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读