android使用pull解析器读写xml文件…

public class CreatexmlActivity extends Activity {
   
Button btn1;
// OnClickListener ocl1;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btn1=(Button)findViewById(R.id.button1);
        btn1.setOnClickListener(ocl1);

         
    }
     
  public OnClickListener ocl1=new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
List<Person> list1=new ArrayList<Person>();
Person p1=new Person("shouji",12);
p1.setId(0);
list1.add(p1);
Person p2=new Person("dianhua",22);
p2.setId(new Integer(1));
list1.add(p2);
try {
saveAllByXmlSerializer(list1,new FileOutputStream(new File("/sdcard/data","b.xml")));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<Person> list2;
try {
list2 = findAll(new FileInputStream(new File("/sdcard/data","b.xml")));
for(int i=0;i<list2.size();i++)
Toast.makeText(getApplicationContext(),list2.get(i).getName(),Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};

public List<Person> findAll(InputStream in) throws Exception { 
    // 获取Pull解析器 
    XmlPullParser parser = Xml.newPullParser(); 
    // 解析器加载输入流 
    parser.setInput(in, "UTF-8"); 
 
    List<Person> list = new ArrayList<Person>(); 
    Person user = null; 
    for (int event = parser.getEventType(); event != XmlPullParser.END_DOCUMENT; event = parser.next()) 
        switch (event) { 
            case XmlPullParser.START_TAG: 
                if ("person".equals(parser.getName())) { 
                    user = new Person(); 
                    String id = parser.getAttributeValue(0); 
                    user.setId(new Integer(id)); 
                    list.add(user); 
                } else if ("name".equals(parser.getName())) { 
                    String name = parser.nextText(); 
                    user.setName(name); 
                } else if ("age".equals(parser.getName())) { 
                    String age = parser.nextText(); 
                    user.setAge(new Integer(age)); 
               
       
 
    return list; 


public void saveAllByXmlSerializer(List<Person> users, OutputStream out) throws IOException { 
    XmlSerializer serializer = Xml.newSerializer(); 
    serializer.setOutput(out, "UTF-8"); 
 
    serializer.startDocument("UTF-8", true); 
    serializer.startTag(null, "persons"); 
 
    for (Person user : users) { 
        serializer.startTag(null, "person"); 
        serializer.attribute(null, "id", user.getId().toString()); 
 
        serializer.startTag(null, "name"); 
        serializer.text(user.getName()); 
        serializer.endTag(null, "name"); 
 
        serializer.startTag(null, "age"); 
        serializer.text(String.valueOf(user.getAge())); 
        serializer.endTag(null, "age"); 
 
        serializer.endTag(null, "person"); 
   
 
    serializer.endTag(null, "persons"); 
    serializer.endDocument(); 





public class Person {  
     
    private Integer id;  
    private String name;  
    private int age;  
       
    public Person ()  
    {}  
    public Person (String name ,int age)  
    {  
        this.name = name;  
        this.age = age;  
    }  
    public Integer getId() {  
        return id;  
    }  
    public void setId(Integer 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;  
    }  
    @Override  
    public String toString() {  
        // TODO Auto-generated method stub  
        return this.id+",name   "+this.name+"   age   "+this.age+"\n";  
    }  
       
}  

}

创建的xml文件如下:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><persons><person id="0"><name>shouji</name><age>12</age></person><person id="1"><name>dianhua</name><age>22</age></person></persons>
大家会发现这个xml文件和我们平常使用的xml文件有所差别,请仔细看!
发现没有,<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>这个中间的是单引号,而我们平常使用的是双引号<?xml version="1.0" encoding="utf-8"?>,这个怎么办呢?下期解决。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值