1.获取XmlPullParser对象
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();//先获取XmlPullParserFactory实例 XmlPullParser xmlPullParser = factory.newPullParser();//利用XmlPullParserFactory对象获取XmlPullParser对象
2.载入文件并解析的原理
/*载入文件*/ String s = "xml文档数据"; StringReader sr = new StringReader(s);//将数据转换成流 xmlPullParser.setInput(sr);//将数据放入XmlPullParser对象进行解析
解析原理:
就像有根手指放在文档上,逐步处理START_TAG,END_TAG和END_DOCUENT不同的XML节点事件。
START_TAG:当手指放在标签的头部时
END_TAG:当手指放在标签的尾部时
END_DOCUMENT:当手指到达文章的尾部的时候
3.进行解析并获取解析数据
XmlPullParser解析有几个主要方法(属性值:<div id="" name="">节点的内容</div> id and name就是节点属性值。。。 )
a.XmlPullParser.getEventType() : 【获取当前事件回调类型】
b.XmlPullParser.getName():【获取当前节点名字】
c.XmlPullParser.getAttributeValue(int index):【根据id获取节点属性值】
d.XmlPullParser.getAttributeValue(String namespace, String name):【根据name获取节点属性值】
e.XmlPullParser.nextText():【在回调节点START_TAG时,通过此方法获取节点全部内容】
XmlPullParser移动“手指”的方法:parser.next();
4.实例
private static final String XML_PEOPLE = "people"; public void parseItems(String xmlData){ XmlPullParserFactory factory = XmlPullParserFactory.newInstance();//创建Xml工厂 XmlPullParser parser = factory.newParser();//创建Xml解析器 StringReader sr = new StringReader(xmlData);//将xml数据转换成reader流 parser.setInput(sr);//将数据放入解析器 int eventType = parser.next();//指针下移,获取回调事件类型 While(eventType != XmlPullParser.END_DOCUMENT){ //得到xml数据最后退出循环 if (eventType == XmlPullParser.START_TAG && XML_PEOPLE.equals(parser.getName())){//事件为文章头部并且标签名为需要标签 String name = parser.getAttributeValue(null,"name")//没有namespace就填null,获取属性为name的值 String weight = parser.getAttributeValue(nuill,"weight")//获取属性为weight的值 } eventType = parser.next();//指针下移 } }
时间: 2024-12-23 19:04:35