Android中用pull解析器解析xml文件

来源:互联网 发布:msxml是什么软件 编辑:程序博客网 时间:2024/06/15 01:34

person.xml文件内容:


《?xml version="1.0" encoding="UTF-8"?》
《persons》
    《personid="23"》
       《name》gyd《/name》
       《age》19《/age》
   《/person》
    《personid="20"》
       《name》zhangxiaoxiao《/name》
       《age》25《/age》
   《/person》
《/persons》
   

 

 

读取xml文件中节点内容的代码:

 

InputStream xml =this.getClass().getClassLoader().getResourceAsStream("person.xml")

public List getPersons(InputStream xml) throws Exception {

  // 创建一个pull解析器
  // XmlPullParser pullParser =
  //XmlPullParserFactory.newInstance().newPullParser();
  XmlPullParser pullParser =Xml.newPullParser();
  // pull加载输入流
  pullParser.setInput(xml, "UTF-8");
  List persons = new ArrayList();
  Person person = null;
  for (int event = pullParser.getEventType();event != pullParser.END_DOCUMENT; event = pullParser
    .next()){
   switch (event) {
   caseXmlPullParser.START_DOCUMENT:
    break;
   caseXmlPullParser.START_TAG:
    if(pullParser.getName().equals("person")) {
    person = new Person();
    person.setId(new Integer(pullParser.getAttributeValue(0)));
    persons.add(person);
    }
    if(pullParser.getName().equals("name")) {
    person.setName(pullParser.nextText());
    }
    if(pullParser.getName().equals("age")) {
    person.setAge(Integer.parseInt(pullParser.nextText()));
    }
    break;
   }
  }

  return persons;
 }

 

将内容保存为xml文件

  
 public void save(List persons, OutputStream out)throws Exception {
  XmlSerializer serializer =Xml.newSerializer();
  serializer.setOutput(out,"UTF-8");
  serializer.startDocument("UTF-8",true);
  serializer.startTag(null,"persons");

  for (Person p : persons){
   serializer.startTag(null,"person");
   serializer.attribute(null,"id", p.getId().toString());

   serializer.startTag(null,"name");
   serializer.text(p.getName());
   serializer.endTag(null,"name");

   serializer.startTag(null,"age");
   serializer.text(p.getAge().toString());
   serializer.endTag(null,"age");

   serializer.endTag(null,"person");
  }

  serializer.endTag(null,"persons");
  serializer.endDocument();
 }

0 0