[android] 采用pull解析xml文件

新建一个天气信息的xml文件,新建一个业务包,包里面一个业务类,暴露获取天气的方法,新建一个domain包,包里面一个天气的业务bean,业务bean里面根据xml的节点建立成员属性,生成get set方法,生成有参和无参的构造函数,在业务方法里面解析xml文件塞到业务集合里面。

 

 

Javaweb里面解析xmlDOM解析,一次性加载到内存里面,生成树状的结构,消耗的内存大,SAX解析,基于事件的解析,速度快不能倒退,android下是pull解析,类似SAX解析

 

 

获取XmlPullParser对象,通过Xml.newPullParser方法,

调用XmlPullParser对象的setInput(inputSTream,inputEncoding),文件输入流,编码

调用XmlPullParser对象的getEventType()获得事件类型,有Xml.START_DOCUMENt Xml.END_DOCUMENTXml.START_TAGXml.END_TAG

通过循环不停的取

While(类型不等于END_DOCUMENT){

}

在这个循环里面switch进行判断,当START_TAG的时候,调用XmlPullParser对象的getName()方法获取节点的名称,等于一个值得时候,创建List集合,等于一个值得时候创建业务对象,调用XmlPullParser对象的getAttributeValue()可以获取属性,调用nextText()可以获取节点内容,当END_TAG的时候业务对象add放入集合,

 

Xml文件在类路径下,可以通过类加载器直接加载xml文件,例如 MainActivity.class.getClassloader().getResourceAsStream(文件名),为了好看点,可以在业务bean里面生成toString()方法,可以方便打印查看,

你可能感兴趣的:([android] 采用pull解析xml文件)