先上效果图:
好久不碰XML解析,在此写了个小的demo来温习一下解析XML,其中我用的Pull来解析XML,XML文件存放在tomcat服务器,服务器端采用SSH框架编码完成,由安卓端通过http的GET请求获取到xml,之后就是解析啦,解析完将所有数据存放在实体类中,接下来就是将数据显示在ListView上面了。demo虽小,但其中遇到一些问题卡住我半天,下面就来看看吧。服务器的搭建比较简单了,其中在action中处理安卓端的get请求,将person.xml以字节流的方式返回给安卓端.
action中代码:
//获取xml数据
public String getXmlData(){
try {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset:UTF-8");
response.setCharacterEncoding("UTF-8");
List<Person> persons=personBiz.getXmlData();
/*for (Person person : persons) {
System.out.println(person);
}*/
request.setAttribute("persons", persons);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "success";
}
dao层接口代码:
//查询所有xml数据
public List<Person> getXmlData();
dao层实现类代码:
@Override
public List<Person> getXmlData() {
List<Person> lists=getSession().createQuery("from Person").list();
return lists;
}
struts.xml中配置action:
<action name="getXmlData" class="personAction" method="getXmlData">
<result name="success">/list.jsp</result>
</action>
服务器端页面请求:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
<a href="getXmlData.action">解析XML数据</a>
</center>
</body>
</html>
服务器端页面返回结果: