Android从网络中获取xml文件并解析数据
public class XmlwebData
{ @SuppressLint("UseValueOf")
public static List<Person> getData(String path) throws Exception
{
URL url=new URL("http://192.168.5.10:8080/FileServer/person.xml");
Person person=null;
List<Person> persons=null;
HttpURLConnection conn=(HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
if(conn.getResponseCode()==200)
{
InputStream inputstream=conn.getInputStream();
System.out.println("网络连接成功"); XmlPullParser xml=Xml.newPullParser();
xml.setInput(inputstream, "UTF-8");
int event=xml.getEventType(); while(event!=XmlPullParser.END_DOCUMENT)
{
switch (event)
{
//开始解析文档
case XmlPullParser.START_DOCUMENT:
persons=new ArrayList<Person>();
break;
case XmlPullParser.START_TAG: String value=xml.getName();
if(value.equals("person"))
{//person对象的初始化必须在这里初始化不然可能出现为null的现象
person=new Person();
//获取属性值
person.setId(new Integer(xml.getAttributeValue(0)));
}
else if(value.equals("name"))
{
person.setName(xml.nextText());
System.out.println(person.getName());
}
else if(value.equals("sex"))
{
person.setSex(xml.nextText());
System.out.println(person.getSex());
}
else if(value.equals("age"))
{
person.setAge(new Integer(xml.nextText()));
System.out.println(person.getAge());
}
else if(value.equals("path"))
{
person.setPath(xml.nextText());
System.out.println(person.getPath());
}
break;
case XmlPullParser.END_TAG:
if(xml.getName().equals("person"))
{
persons.add(person);
person=null;
}
break;
}
//解析下一个对象
event=xml.next();
}
}
return persons;
} }
peson类
public class Person
{
private int id;
private String name;
private String sex;
private String path;
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(){};
public Person(int id, String name, String sex, int age,String path) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
this.path=path;
}
}
网络中的person.xml文件的数据为
<?xml version="1.0" encoding="UTF-8"?>
<Persons>
<person id="1">
<name>张三</name>
<sex>男</sex>
<age>25</age>
<path>http://192.168.5.10:8080/FileServer/chengjisihan.jpg</path>
</person>
<person id="2">
<name>李斯</name>
<sex>男</sex>
<age>78</age>
<path>http://192.168.5.10:8080/FileServer/laozi.jpg</path>
</person>
<person id="3">
<name>王五</name>
<sex>男</sex>
<age>22</age>
<path>http://192.168.5.10:8080/FileServer/lilongji.jpg</path>
</person>
</Persons>
Android从网络中获取xml文件并解析数据的更多相关文章
- XML(php中获取xml文件的方式/ajax获取xml格式的响应数据的方式)
1.XML 格式规范: ① 必须有一个根元素 ② 不可有空格.不可以数字或.开头.大小写敏感 ③ 不可交叉嵌套 ④ 属性双引号(浏览器自动修正成双引号了) ⑤ 特殊符号要使用实体 ⑥ 注释和HTML一 ...
- 修改Android中strings.xml文件, 动态改变数据
有些朋友可能会动态的修改Android中strings.xml文件中的值,在这里给大家推荐一种简单的方法.strings.xml中节点是支持占位符的,如下所示: <string name=&qu ...
- Android 从网络中获取数据时 产生部分数据乱码的解决
产生部分数据乱码的解决 标签: android部分中文乱码 2014-04-12 23:24 12366人阅读 评论(10) 收藏 举报 分类: [Android 基础](15) 版权声明:本文为博主 ...
- Android开发之获取xml文件的输入流对象
介绍两种Android开发中获取xml文件的输入流对象 第一种:通过assets目录获取 1.首先是在Project下app/src/main目录下创建一个assets文件夹,将需要获取的xml文件放 ...
- android 中获取视频文件的缩略图(非原创)
在android中获取视频文件的缩略图有三种方法: 1.从媒体库中查询 2. android 2.2以后使用ThumbnailUtils类获取 3.调用jni文件,实现MediaMetadataRet ...
- Android之旅十四 android中的xml文件解析
在我们做有关android项目的时候,肯定会涉及到对xml文件的解析操作.以下给大家介绍一下xml文件的解析.包括DOM.SAX.Pull以及曾经我们用到的DOM4J和JDOM: 要解析的XML文件: ...
- [置顶] Android开发之XML文件的解析
Android系统开发之XML文件的解析 我们知道Http在网络传输中的数据组织方式有三种分别为:XML方式.HTML方式.JSON方式.其中XML为可扩展标记语言,如下: <?xml vers ...
- .net中创建xml文件的两种方法
.net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...
- 八、Android学习第七天——XML文件解析方法(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:exten ...
随机推荐
- Sqlserver通过链接服务器访问Oracle
工作中遇到的情况,win 7 64位操作系统的就安装64位的oracle 客户端,然后重启sql service服务后再创建sql 链接服务器.关于如何创建链接服务器请查看下面的大神的链接: http ...
- .net中使用JQuery Ajax判断用户名是否存在的方法
//第一步:新建一个(*.aspx|*.html)Index.aspx页面 添加jquery 1 <html xmlns="http://www.w3.org/1999/xhtml&q ...
- .net版ckeditor配置水印功能(转)
本文简单讲解ckfinder控件给上图片加水印效果. 1.将ckfinder/plugins/watermark/bin/Debug目录下的CKFinder_Watermark.dll和CKFinde ...
- 在WinForm应用程序中,使用选项卡控件来加载不同的Form界面!
TabPage tp=new TabPage(); your选项卡控件.Controls.Add(tp); From1 frm=new Form1(); frm.TopLevel = false; f ...
- 《作业控制系列》-“linux命令五分钟系列”之十
本原创文章属于<Linux大棚>博客. 博客地址为http://roclinux.cn. 文章作者为roc 希望您能通过捐款的方式支持Linux大棚博客的运行和发展.请见“关于捐款” == ...
- yzoi1777倒水问题的详细解法
Description - 问题描述 x.y.z三个容器,其最大容量分别是xMAX升.yMAX升.zMAX升,这里规定100>xMAX>yMAX>zMAX.一开始x是装满了水的,现在 ...
- js 表达式与运算符 详解(上)
表达式: 表达式是用于JavaScript脚本运行时进行计算的式子,可以包含常量.变量.运算符 <script> var r = 2 var pi = 3.14 var circle = ...
- xgboost中如何自定义metric(python中)
正好在参加携程的比赛,用的xgboost的算法,但携程比赛的测评函数比较奇怪,不是传统的那些,而是取precision≥0.97的情况下,recall的最大值.那无疑这个测评函数是要自己写的(官方没给 ...
- Ruby自学笔记(六)— 循环
循环结构在编程语言中是不可或缺的,所以Ruby中的循环也有其自定义的规则. 而我们关注循环结构,要知道两个因素:1) 循环的条件:2) 循环执行的内容 Ruby有一些方式来实现循环结构体: 1. ti ...
- 转:GraphicsMagick介绍及安装
原文来自于:http://www.cnblogs.com/cocowool/archive/2010/08/16/1800954.html GraphicsMagick 当前稳定版本:1.3.12(发 ...