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

本地提供XML数据,Android端获取并解析成List集合显示

发布时间:2020-12-16 08:28:12 所属栏目:百科 来源:网络整理
导读:本地提供 XML数据,使用 MyEclipse , 项目地址 Android端获取并解析成List集合显示,用Android Studio, 项目地址 该项目在完成的过程中,所遇到的问题: 1、jstl 的 taglib 中的 uri 的设置:(需要到jar包,项目中已经导入) 以前在学 Java Web 时有学到过

本地提供XML数据,使用 MyEclipse ,项目地址

Android端获取并解析成List集合显示,用Android Studio,项目地址

该项目在完成的过程中,所遇到的问题:

1、jstl 的 taglib 中的 uri 的设置:(需要到jar包,项目中已经导入)

以前在学Java Web 时有学到过,请按照以下路径找到对应的 url 地址(这个地址不支持EL表达式,下面告知支持EL表示的url地址)。

图:jstl url路径

支持EL表达式的地址:http://java.sun.com/jstl/core_rt(当然方法不只这一种)

2、MyEclipse 中更改了 ListServlet.java 的包名,导致服务器启动后总是空白,无任何信息。

其实这里,右键更改了包名后,配置文件里并不会自动改变,需要在web.xml中检查配置的servlet-class是否正确,在这里卡得有点久,因为没有啥有价值的提示。

3、在jsp页面中,想要输出的页面为xml而不是html,需要在 page 标签中设置字段contentType="text/xml"

4、Toast 需要写在UI线程中,这句很重要,以前做项目过程中没有过多的关注Toast,导致这次调试后才发现是Toast部分出了问题。

在网络不佳或没网的时候,请求connection.getResponseCode() 出现崩溃,后来经过调试发现,它们崩溃时报IOException,调试跟踪,我将 Toast 信息写在了 catch 部分,而网络获取是写在子线程中的。

还有另一个错误是,carch 的 Exception e,e 为空,而我接下来也调用了 e.printStackTrace(),需要对 e 的值加以判断。

5、XML 解析时调用 parser.setInput(in,UTF-8); 时,总是崩溃,因跟踪进去时,它是接口,没有找到有价值的信息,网络上所是编码有误,我下载了火狐插件debug跟踪,证明网页响应编码是 UTF-8。

后来通过观察日志信息,发现是因为我提前关闭了stream,查找到对应的地方,原来,是我在返回 InputStream 前已经调用了 connection.disconnect() 关闭了连接。

另加一句:获取xml 的地址,必须是局域网的ip地址,不能是 localhost,如用 cmd 输入 ipcpnfig,就可以得到对应的局域网 ip,我的 ip 是 192.168.1.24,你的机器可能会不一样。

通过这个项目,使我加深了对 xml pull 解析的理解,以及巩固子线程与主线程各自的操作范围,解决问题的能力与方式等,都得到了较大的提升。

(编辑:李大同)

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

    推荐文章
      热点阅读