()相当于“/sdcard”目录的路径,=newFIle(目录,文件名)().equals()),)它是采用事件驱动,它不需要解析完整个文件,按顺序解析的时候,它会自己判断当前读到的字符,会触发一些ContextHandle里面的回调方法,(stringnameSpaceUri命名空间(android:),Stringlocalname标签名(name),Stringqname全名(android:name),Attributeatt标签里面的属性)(stringuri,Stringlocalname,Stringname)(char[]ch,)会在读到\n\t\t的时候触发(也会触发iii中的),有一个帮助类DefaultHandler,它实现了ContextHandler接口,但是里面的方法都为空a)所以我们要先创建一个类继承DefaultHandlerb))1)lassXMLContextHandlerextendsDefaultHandler{privateList<Person>persons;privatePersonperson;privateStringpreTag;//记录上一个元素标签是什么/***用来返回列表****@return*/publicList<Person>getPersons(){returnpersons;}***@OverridepublicvoidstartDocument()throwsSAXException{persons=newArrayList<Person>();//(0)初始化list}***@Overridepublicvoidcharacters(char[]ch,intstart,intlength)throwsSAXException{if(person!=null){if("name".equals(preTag)){//(3)如果上一个标签为name,就保存值Stringdata=newString(ch,start,length);(data);}elseif("age".equals(preTag)){//(4)如果上一个标签为age,就保存值Stringage=newString(ch,start,length);(newShort(age));}}}***@OverridepublicvoidstartElement(Stringuri,StringlocalName,StringqName,Attributesattributes)throwsSAXException{if("person".equals(localName)){//(1)创建Person,保存idperson=newPerson();(newInteger(("id")));//得到属性的值}elseif("name".equals(localName)){}preTag=localName;//(2)保存元素标签}***@OverridepublicvoidendElement(Stringuri,StringlocalName,StringqName)throwsSAXException{if("person".equals(localName)&&person!=null){//(5)(person);person=null;}preTag=null;}i.}b)使用接口SAXParserFactoryspf=();SAXParsersp=();/*("/sax/features/namespaces=true",true);*可以打开命名空间支持`**/XMLCo
xxp-android 来自淘豆网m.daumloan.com转载请标明出处.