xml文件如下:
<?xml version="1.0" encoding="UTF-8">
<persons>
<person id="1">
<name>aa</name>
<age>30</age>
</person>
<person id="2">
<name>bb</name>
<age>22</age>
</person>
</persons>
新建一个person类:
public class Person{
private int id;
private String name;
private String age;
...getter,setter
}
读取xml文件中的内容:
/**
* 读取xml文件中的内容
* @param xml
* @return
* @throws Exception
*/
public static List<Person> getPersons(InputStream xml) throws Exception {
// 得到pull解析器
// XmlPullParser
// pull=XmlPullParserFactory.newInstance().newPullParser();
List<Person> persons = null;
Person person=null;
XmlPullParser pull = Xml.newPullParser();
pull.setInput(xml, "UTF-8");
int event = pull.getEventType();
while (event!=XmlPullParser.END_DOCUMENT) {
switch (event) {
case XmlPullParser.START_DOCUMENT:
persons = new ArrayList<Person>();
break;
case XmlPullParser.START_TAG:
if("person".equals(pull.getName())){
int id=new Integer(pull.getAttributeValue(0));
person=new Person();
person.setId(id);
}
if("name".equals(pull.getName())){
String name=pull.nextText();
person.setName(name);
}
if("age".equals(pull.getName())){
int age=new Integer(pull.nextText());
person.setAge(age);
}
break;
case XmlPullParser.END_TAG:
if("person".equals(pull.getName())){
persons.add(person);
person=null;
}
}
event=pull.next();
}
return persons;
}
保存数据到xml文件中:
/**
* 保存数据到xml文件
* @param persons
* @param out
* @throws Exception
*/
public void save(List<Person> persons,OutputStream out) throws Exception{
XmlSerializer s=Xml.newSerializer();
s.setOutput(out,"UTF-8");
s.startDocument("UTF-8", true);
s.startTag(null, "persons");
for(Person p:persons){
s.startTag(null, "person");
s.attribute(null, "id", p.getId().toString());
s.startTag(null, "name");
s.text(p.getName().toString());
s.endTag(null, "name");
s.startTag(null, "age");
s.text(p.getAge().toString());
s.endTag(null, "age");
s.endTag(null, "person");
}
s.endTag(null, "persons");
s.endDocument();
out.flush();
out.close();
}
}
分享到:
相关推荐
使用Android自带的XML解析器PULL解析器简单的解析xml,并将内容显示在TestView上,代码简化过。
利用android中自带的pull解析器解析和生成xml片段。
Android中采用Pull解析器读取和生成xml内容案例...
一个eclipse工程包含如何使用android中自带的xml解析器pull,解析和生成xml文件
XML解析有三种方式 1,DOM 通用性强,它会将XML文件的所有内容读取到内存中,然后使用DOM API遍历XML树、检索所需的数据;...Android自带的XML解析器,和SAX基本类似,也是事件驱动,不同的是PULL事件返回的是数值型
Android解析xml(3)---Pull解析
本例使用多种方式获取本地XML文件,还有通过url获取XML文件,使用Android内置的PULL解析器对XML文件进行解析,例子是解析我国各个省市。 《Android解析XML文件》博文路径:...
使用android内置的pull解析器解析xml,演示了取节点名称、取节点属性值以及取节点下文本的方式,并根据节点名称通过反射取类中的变量的值
主要针对android中的xml文件进行解析
支持SAX解析XML文件,DOM解析XML文件,Pull解析器解析XML文件,Pull生成XML文件,JAVA和Kotlin两种语言编写
Android利用pull生成xml文件
除了可以使用SAX或DOM解析XML文件之外,大家也可以使用Android内置的Pull解析器解析XML文件。 Pull解析器是一个开源的java项目,既可以用于android,也可以用于JavaEE。如果用在javaEE需要把其jar文件放入类路径中,...
Pull解析器是Android系统内置的的,Pull解析器与SAX解析器类似,他提供了类似的事件,如开始元素和介绍元素的事件,使用parser.next()可以进入下一个元素并触发相应的事件,然后进行相应的处理,当元素开始解析时,...
Android使用Pull解析器解析xml文件的实现代码,需要的朋友可以参考一下
Android解析xml文件的3种方式,在Android中,常见的XML解析器分别为SAX解析器、DOM解析器和PULL解析器,
在Android中,常见的XML解析器分别为SAX解析器、DOM解析器和PULL解析器. 这里的源代码介绍的是Android XML解析之SAX方式
pull解析器解析xml
解析XML文件:在Android平台上可以使用SAX、DOM和Android附带的pull解析器解析XML文件;pull解析器提供了各种事件,使用parser.next()方法进入下一个元素并触发相应事件,pull解析器产生的事件是一个数字,可以通过...