Pull解析XML---学习
来源:互联网 发布:java aes加密 key iv 编辑:程序博客网 时间:2024/05/16 06:35
学习笔记:10.0.2.2对于模拟器来说就是电脑本机的IP地址;
首先要获取到一个XmlPullParserFactory的实例,并借助这个实例得到XmlPullParser对象,然后调用XmlPullParser的setInput()方法将服务器返回的XML数据设置进去就可以开始解析了。解析的过程也是非常简单,通过getEventType()可以得到当前的解析事件,然后在一个while循环中不断地进行解析,如果当前的解析事件不等于XmlPullParser.END_DOCUMENT,说明解析工作还没完成,调用next()方法后可以获取下一个解析事件。
在while循环中,我们通过getName()方法得到当前结点的名字,如果发现结点名等于id、name或version,就调用nextText()方法来获取结点内具体的内容,每当解析完一个app结点后就将获取到的内容打印出来。
<pre name="code" class="java">
private void sendRequestWithHttpClient() { new Thread(new Runnable() { @Override public void run() { try { HttpClient httpClient = new DefaultHttpClient(); // 指定访问的服务器地址是电脑本机 HttpGet httpGet = new HttpGet("http://10.0.2.2/get_data.xml"); HttpResponse httpResponse = httpClient.execute(httpGet); if (httpResponse.getStatusLine().getStatusCode() == 200) { // 请求和响应都成功了 HttpEntity entity = httpResponse.getEntity(); String response = EntityUtils.toString(entity, "utf-8"); parseXMLWithPull(response); } } catch (Exception e) { e.printStackTrace(); } } }).start(); } private void parseXMLWithPull(String xmlData) { try { XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser xmlPullParser = factory.newPullParser(); xmlPullParser.setInput(new StringReader(xmlData)); int eventType = xmlPullParser.getEventType(); String id = ""; String name = ""; String version = ""; while (eventType != XmlPullParser.END_DOCUMENT) { String nodeName = xmlPullParser.getName(); switch (eventType) { // 开始解析某个结点 case XmlPullParser.START_TAG: { if ("id".equals(nodeName)) { id = xmlPullParser.nextText(); } else if ("name".equals(nodeName)) { name = xmlPullParser.nextText(); } else if ("version".equals(nodeName)) { version = xmlPullParser.nextText(); } break; } // 完成解析某个结点 case XmlPullParser.END_TAG: { if ("app".equals(nodeName)) { Log.d("MainActivity", "id is " + id); Log.d("MainActivity", "name is " + name); Log.d("MainActivity", "version is " + version); } break; } default: break; } eventType = xmlPullParser.next(); } } catch (Exception e) { e.printStackTrace(); } }
0 0
- Pull解析XML---学习
- pull解析xml学习笔记
- Android学习笔记:Pull解析XML
- xml与pull解析的初步学习
- Android学习-- 使用Pull解析XML文件
- 关于Pull解析xml的学习
- android学习笔记之-xml pull解析
- XML解析Pull解析
- XML解析---PULL解析
- Android XML解析学习—Pull方式(HttpURLConnection xml)
- 关于XML文件解析的学习软件PULL解析方法
- Android学习笔记-Xml文件解析之PULL解析实战
- XML的pull解析
- Pull解析XML文件
- Pull详解解析xml
- Pull解析Xml方式
- Android Pull解析xml
- pull解析xml
- 鸟哥的Linux私房菜基础篇第三版 -- 目录
- 2016校招编程题<二>
- 黑马程序员——C语言基础---循环结构
- FloatingActionButton,TextInputLayout,Snackbar,TabLayout
- 2016校招编程题<三>
- Pull解析XML---学习
- 面试---指针与地址
- eclipse jee 和 myeclipse web项目的转换
- python入门之(语法介绍)
- 2016校招编程题<四>
- A Complete ActiveX Web Control Tutorial
- 剑指Offer-6-重建二叉树
- Eclipse下安装Axis2插件
- java面试题二十七 多线程考题2