android xml操作

来源:互联网 发布:sql注入 and 1 1 编辑:程序博客网 时间:2024/05/24 01:51

在android中xml操作主要通过XmlSerializer 和XmlPullParser两个接口实现的。(这两个接口在org.xmlpull.v1)


一 XmlSerializer 

1 获得XmlSerializer 对象

XmlSerializer  xmls = Xml.newSerializer();

2 设置输出的xml文件

xmls.setOutput(字符输出流, 编码格式);

例如:FileOutputStream fos = new FileOutputStream(new File(
getFilesDir(), "text.xml"));
XmlSerializer xmls = Xml.newSerializer();
xmls.setOutput(fos, "utf-8");

3 填写xml文件内容

例如:

xmls.startDocument("utf-8", true);        //xml文件头
xmls.startTag(null, "info");//xml开始标签
xmls.startTag(null, "student");
xmls.attribute(null, "num", num);       //设置标签属性
xmls.startTag(null, "age");
xmls.text(age);//设置标签中文本值
xmls.endTag(null, "age");
xmls.startTag(null, "name");
xmls.text(name);
xmls.endTag(null, "name");
xmls.endTag(null, "student");
xmls.endTag(null, "info");
xmls.endDocument();

二 XmlPullParser

1 获得XmlPullParser对象

XmlPullParser xmlp =  Xml.XmlPullParser();

2 设置读入xml文件

xmlp.setInput(文件字符,编码格式);

例如:

FileInputStream fis = new FileInputStream(file);
XmlPullParser xmlp = Xml.newPullParser();
xmlp.setInput(fis, "utf-8");

3 读取内容

要使用元素类型来区别标签类型:

START_DOCUMENT 、END_DOCUMENT、START_TAG、END_TAG、TEXT等元素类型。

例如:

int type = xmlp.getEventType();
while (type != XmlPullParser.END_DOCUMENT) {
switch (type) {
case XmlPullParser.START_TAG:
if("student".equals(xmlp.getName())){
sb.append("学号:"+xmlp.getAttributeValue(null, "num"));
sb.append("\n");
}else if("name".equals(xmlp.getName())){
sb.append("姓名:"+xmlp.nextText());
sb.append("\n");
}else if("age".equals(xmlp.getName())){
sb.append("年龄:"+xmlp.nextText());
sb.append("\n");
}
break;
}
System.out.println("-----------"+type+"-------------");
type = xmlp.next();
}


0 0
原创粉丝点击