使用pull方式和sax方式对xml文件进行解析
发布时间:2020-12-16 23:33:40 所属栏目:百科 来源:网络整理
导读:这是我自己设置的xml文件 用一下方式获取它的内容 try{ OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() //对于虚拟机而言的本地地址 .url("http://10.0.2.2/get_data.xml") .build(); Response response =client.newCa
这是我自己设置的xml文件 用一下方式获取它的内容 try{ 首先是pull方式 xmlData是获取到的xml文件内容 private void parseXMLWithPull(String xmlData){ public class MyHandler extends DefaultHandler{ private String nodeName; private StringBuilder id; private StringBuilder name; private StringBuilder version;//开始解析xml时调用 @Override public void startDocument() throws SAXException { id = new StringBuilder(); name = new StringBuilder(); version = new StringBuilder(); }//开始解析某个节点时调用 @Override public void startElement(String uri,String localName,String qName,Attributes attributes) throws SAXException { nodeName = localName; //记录当前节点名 }//获取节点内容时调用 @Override public void characters(char[] ch,int start,int length) throws SAXException { switch (nodeName){ case "id": { id.append(ch,start,length); break; } case "name":{ name.append(ch,length); break; } case "version":{ version.append(ch,length); } } } @Override public void endElement(String uri,String qName) throws SAXException { if("app".equals(nodeName)){ Log.i("ContentHandler","id: "+id.toString().trim()); Log.i("ContentHandler","name: "+name.toString().trim()); Log.i("ContentHandler","version: "+version.toString().trim()); //清空StringBuilder id.setLength(0); name.setLength(0); version.setLength(0); } } @Override public void endDocument() throws SAXException { super.endDocument(); }} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |