开篇注意,由于解析有可能有大文件非常耗时,建议另开一个线程解析也可以不开具体视情况而定
Pull生成
1.通过xml获得序列化的实例
XmlSerializer nxs = Xml.newSerializer();
2.设置文件输出路径以及输出格式
nxs.setOutput(os, encoding); 注释:os是文件流,encoding是编码格式
3.文档开始标签文档的读取的编码格式,以及是否是独立的文档
nxs.startDocument(encoding, standalone); 注释:encoding是文档编码格式,standalone是否是独立文档
4.开始节点
nxs.startTag(null, 节点名);null是名字空间,不用写
5.节点设置属性
nxs.attribute(null, 属性名,属性值);null是名字空间,不用写
6.节点设置内容
xs.text(内容);
7.节点结束
nxs.endTag(null, 节点名);null是名字空间,不用写
8.文档结束标签
nxs.endDocument();
Pul解析
1.拿到解析XML的实例
XmlPullParser npp = Xml.newPullParser();
2.打开需要解析的文件,设置解析的编码格式
npp.setInput(open, "utf-8");
3.获得第一行解析的类型
npp.getEventType();
4.当事件的类型不等于文档结束时一直循环解析
while (eventType!= XmlPullParser.END_DOCUMENT) {
//解析内容....
// 指针下调并且把值赋给事件类型
eventType = npp.next();
}
//事件类型分为文档开始,开始节点,文本节点,结束节点,文档结束
//获取属性值使用的是getAttributeValue(需要获取的第几个的下表);
//获取文本的内容使用的是nextText()