Android 采用Pull解析器解析和生成XML内容
2014-03-04 00:44
393 查看
对XML的了解还不是很深,现在只是用来保存对象数据,用来传数据。刚刚学了下用Pull解析器解析XML文件和生成XML文件。代码很简单。代码如下:
person.xml
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="21">
<name>caibinsong</name>
<age>21</age>
</person>
<person id="22">
<name>wanghuixing</name>
<age>20</age>
</person>
</persons>
personbean.java
package com.example.pull;
public class personbean {
int id;
String name;
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
MainActivity.java
package com.example.pull;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.List;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
List<personbean> personlist;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputStream xml=this.getClass().getClassLoader().getResourceAsStream("person.xml");
try {
personlist=personservice.getPersons(xml);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(personbean person:personlist){
System.out.println(person.getId()+":"+person.getName()+":"+person.getAge());
}
File xmlfile=new File(Environment.getExternalStorageDirectory()+"/xmlbaoc.xml");
FileOutputStream outstream;
try {
outstream = new FileOutputStream(xmlfile);
personservice.save(personlist, outstream);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
personservice.java
person.xml
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person id="21">
<name>caibinsong</name>
<age>21</age>
</person>
<person id="22">
<name>wanghuixing</name>
<age>20</age>
</person>
</persons>
personbean.java
package com.example.pull;
public class personbean {
int id;
String name;
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
MainActivity.java
package com.example.pull;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.List;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
List<personbean> personlist;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InputStream xml=this.getClass().getClassLoader().getResourceAsStream("person.xml");
try {
personlist=personservice.getPersons(xml);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(personbean person:personlist){
System.out.println(person.getId()+":"+person.getName()+":"+person.getAge());
}
File xmlfile=new File(Environment.getExternalStorageDirectory()+"/xmlbaoc.xml");
FileOutputStream outstream;
try {
outstream = new FileOutputStream(xmlfile);
personservice.save(personlist, outstream);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
personservice.java
package com.example.pull; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlSerializer; import android.util.Xml; public class personservice { //读取数据 public static List<personbean> getPersons(InputStream xml) throws Exception{ List<personbean> personslist=null; personbean person=null; XmlPullParser pullparser=Xml.newPullParser(); pullparser.setInput(xml, "UTF-8"); int event=pullparser.getEventType(); while(event!=XmlPullParser.END_DOCUMENT){ switch(event){ case XmlPullParser.START_DOCUMENT: personslist=new ArrayList<personbean>(); break; case XmlPullParser.START_TAG: if("person".equals(pullparser.getName())){ person=new personbean(); person.setId(Integer.parseInt(pullparser.getAttributeValue(0))); } if("name".equals(pullparser.getName())){ person.setName(pullparser.nextText()); } if("age".equals(pullparser.getName())){ person.setAge(Integer.parseInt(pullparser.nextText())); } break; case XmlPullParser.END_TAG: if("person".equals(pullparser.getName())){ personslist.add(person); person=null; } break; } event=pullparser.next(); } return personslist; } //保存数据 public static void save(List<personbean> personlist,OutputStream out) throws Exception{ XmlSerializer serializer=Xml.newSerializer(); serializer.setOutput(out, "UTF-8"); serializer.startDocument("UTF-8", true); serializer.startTag(null, "persons"); for(personbean person:personlist){ serializer.startTag(null, "person"); serializer.attribute(null, "id", String.valueOf(person.getId())); serializer.startTag(null, "name"); serializer.text(person.getName()); serializer.endTag(null, "name"); serializer.startTag(null, "age"); serializer.text(String.valueOf(person.getAge())); serializer.endTag(null, "age"); serializer.endTag(null, "person"); } serializer.endTag(null, "persons"); serializer.endDocument(); out.flush(); out.close(); } }
相关文章推荐
- Android开发入门之采用Pull解析器解析和生成XML内容
- 采用Pull解析器解析和生成XML内容
- 实例教程四:采用Pull解析器解析和生成XML内容
- 采用Pull解析器解析和生成XML内容
- 实例教程四:采用Pull解析器解析和生成XML内容
- android第十二步Pull解析器解析和生成XML内容
- 采用Pull解析器解析和生成XML内容.
- 实例教程四:采用Pull解析器解析和生成XML内容
- 15_采用Pull解析器解析和生成XML内容
- Android学习笔记---15_采用Pull解析器解析和生成XML内容
- 采用Pull解析器解析和生成XML内容
- Android学习笔记---15_采用Pull解析器解析和生成XML内容
- Android开发系列(八):采用Pull解析器解析和生成XML内容
- android采用pull解析器解析和生成XML
- Android心得3.4--用Pull解析器解析xml文件内容.doc
- Android Pull解析器解析XML文件和生成XML
- android利用Pull解析器解析、生成XMl文件
- 采用Pull解析器生成XML内容
- Android 采用DOM解析XML内容 【学习记录】
- Android使用pull解析器解析和生成xml