Android学习笔记-XML处理
SAX工作原理:当扫描到文档(document)开始与结束、元素(element)开始与结束、文档(document)结束等地方时同志时间处理函数,由时间处理函数做相应动作,然后继续同样的扫描,直至文档结束。
从网络上下载XML代码进行处理
读取网络文件内容的方法参考http://shamrock.blog.51cto.com/2079212/1580269
test.xml
<?xmlversion="1.0"encoding="UTF-8"?><workers><workerid="A01"><name>Tom</name><sex>男</sex><status>经理</status><address>湖北</address><money>20000</money></worker><workerid="A02"><name>Tom1</name><sex>男</sex><status>员工</status><address>湖北武汉</address><money>22000</money></worker><workerid="A03"><name>Tom2</name><sex>男</sex><status>员工</status><address>湖北宜昌</address><money>20200</money></worker></workers>
下载文件不能在主线程中进行。
classMyHandlerextendsHandler{publicMyHandler(){}publicMyHandler(Looperlooper){super(looper);}@OverridepublicvoidhandleMessage(Messagemsg){super.handleMessage(msg);Bundlebundle=msg.getData();StringurlStr=bundle.getString("urlStr");StringfileName=bundle.getString("fileName");Stringpath=bundle.getString("path");HttpDownloaderhttpDownloader=newHttpDownloader();//将读取到的XML文件的内容保存到result中Stringresult=httpDownloader.download(urlStr);System.err.println(result);Toast.makeText(MainActivity.this,"~~",Toast.LENGTH_SHORT).show();try{//创建一个SAXParserFactorySAXParserFactoryfactory=SAXParserFactory.newInstance();XMLReaderreader=factory.newSAXParser().getXMLReader();//为XMLReader设置内容处理器reader.setContentHandler(newMyContentHandler());//开始解析文件reader.parse(newInputSource(newStringReader(result)));}catch(Exceptione){e.printStackTrace();}}}
MyContentHandler.java
packagecom.example.xml;importorg.xml.sax.Attributes;importorg.xml.sax.SAXException;importorg.xml.sax.helpers.DefaultHandler;publicclassMyContentHandlerextendsDefaultHandler{Stringhisname,address,money,sex,status;StringtagName;publicvoidstartDocument()throwsSAXException{System.out.println("````````begin````````");}publicvoidendDocument()throwsSAXException{System.out.println("````````end````````");}publicvoidstartElement(StringnamespaceURI,StringlocalName,StringqName,Attributesattr)throwsSAXException{tagName=localName;if(localName.equals("worker")){//获取标签的全部属性for(inti=0;i<attr.getLength();i++){System.out.println(attr.getLocalName(i)+"="+attr.getValue(i));}}}publicvoidendElement(StringnamespaceURI,StringlocalName,StringqName)throwsSAXException{//在workr标签解析完之后,会打印出所有得到的数据tagName="";if(localName.equals("worker")){this.printout();}}publicvoidcharacters(char[]ch,intstart,intlength)throwsSAXException{if(tagName.equals("name"))hisname=newString(ch,start,length);elseif(tagName.equals("sex"))sex=newString(ch,start,length);elseif(tagName.equals("status"))status=newString(ch,start,length);elseif(tagName.equals("address"))address=newString(ch,start,length);elseif(tagName.equals("money"))money=newString(ch,start,length);}privatevoidprintout(){System.out.print("name:");System.out.println(hisname);System.out.print("sex:");System.out.println(sex);System.out.print("status:");System.out.println(status);System.out.print("address:");System.out.println(address);System.out.print("money:");System.out.println(money);System.out.println();}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。