1.xml序列化器生成xml文件:
//1.初始化xml序列化生成器
XmlSerializer xmlSerializer = Xml.newSerializer();
//2.告诉序列化工具文件的存储位置
FileOutputStream fos = openFileOuput(“qqinfo.xml”,Context.MODE_WORLD_READABLE);
//3.序列化器绑定输出流
xmlSerializer.setOutput(fos,”utf-8”);
//4.开始编写xml格式数据
//告诉序列器开始写文档
xmlSerializer.startDocument(“utf-8”, true);
xmlSerializer.startTag(“”, “map”);//<map>
xmlSerializer.startTag(“”, “passport”);
xmlSerializer.text(passport);
xmlSerializer.endTat(“”, “passport”);//<passport>text</passport>
xmlSerializer.endTag(“”, “map”);
xmlSeiralizer.endDocument();
2.Pull解析器(和SAX解析一样,是基于事件驱动的):
//1.获取Pull解析器
XmlPull pullParser = Xml.newPullParser();
//2.将输出流和pull解析器绑定
FileInputStream fis = Context.openFileInput(“qqinfo.xml”);
pullParser.setInput(fis, “uft-8”);
//3.得到事件的类型
int eventType = pullParser.getEventType();
//4.在while中去获取数据
while(eventType != XmlPullParser.END_DOCUMENT){
if(eventType == XmlPullParser.START_TAG && pullParser.getName().equals(“passport”) ){
result += “passport = ” + pullParser.nextText();
}
}
eventType = pullParser.next();
}
pullParser.next():返回下一个事件的类型
pullParser.getName():获取标签名
pullParser.nextText(): 得到某个标签后的值
3.将一个Android项目工程中,assets中的weather.xml文件解析到textView中:
//1.获取AssetManager资源管理器,用它打开输入流
AssertManager assets = getAssets();
InputStream fis = assets.open(“weather.xml”);
//2.创建Pull解析器,并与打开的文件输入流绑定
XmlPullParser pullParser = Xml.newPullParser();
pullParser.setInput(fis, “utf-8”);
//3.获取当前的事件类型
int eventType = pullParser.getEventType();
//4.在while中去获取数据
while(eventType != XmlPullParser.END_DOCUMENT){
if(eventType == XmlullParser.START_TAT && pullParser.getName().equals(“string”)){
result += pullParser.nextText() + “\n”;
}
eventType = pullParser.next();
}
//5.设置数据到TextView中:
mTextView.setText(result);