XML及PullParser解析
一.什么是XML
二、DOM解析xml
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 使用工厂来实例化一个构造Document的对象
DocumentBuilder builder = factory.newDocumentBuilder();
// 利用DocumentBuilder来构造一个Document对象
Document document = builder.parse(filename);
// 获取Document文档的根节点对象
Element root = document.getDocumentElement();
// 通过根节点,获取到根节点下面的所有二级子节点
NodeList nodeList = root.getChildNodes(); // 遍历子节点,获取内部的每一个节点
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
// 获取每个末端阶段的文本值和节点名称,将其存入到Map对象中
map.put(item.getNodeName(), item.getTextContent());
list.add(map);
}
三、PULL解析xml
// 实例化一个xml pull解析的工厂
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// 实例化一个xml pull解析对象
XmlPullParser pullParser = factory.newPullParser();
// 将xml文件作为流传入到inputstream
BufferedInputStream bis = new BufferedInputStream(
new FileInputStream("customers.xml")); // xml解析对象接收输入流对象
pullParser.setInput(bis, "utf-8"); int event = pullParser.getEventType();
List<Map<String, Object>> list = null;
Map<String, Object> map = null; while (event != XmlPullParser.END_DOCUMENT) {
switch (event) {
case XmlPullParser.START_DOCUMENT:
list = new ArrayList<>();
break;
case XmlPullParser.START_TAG:
if ("customer".equals(pullParser.getName())) {
map = new HashMap<String, Object>();
}
if (pullParser.getName().equals("name")) {
map.put("name", pullParser.nextText());
}
if (pullParser.getName().equals("tel")) {
map.put("tel", pullParser.nextText());
}
// if (pullParser.getName().equals("email")) {
// map.put("email", pullParser.nextText());
// }
break;
case XmlPullParser.END_TAG:
if (pullParser.getName().equals("customer")) {
list.add(map);
}
break;
}
event = pullParser.next();
}
四、DOM TREE结构中对节点的分类
五、PULL PARSER中的几种event值:
XML及PullParser解析的更多相关文章
- android xml产生和解析
public static void writeToXml(Map<String, Object> map,Writer writer) throws Exception, Illegal ...
- Android-Xml,PullParser,解析
在上一篇博客,Android-XML格式描述,介绍来XML在Android中的格式: 解析persons.xml文件内容: <?xml version="1.0" encod ...
- XML数据的解析
XML数据的解析 相比于JSON数据解析而言,XML数据解析可能会让更多的童鞋感觉到吃力,对我来说,同样认为JSON数据好像让人感觉比较友好,不过对于程序开发者来说,无非就是这两种数据解析占比较大的部 ...
- iOS开发笔记3:XML/JSON数据解析
这篇主要总结在iOS开发中XML/JSON数据解析过程用到的方法.XML数据解析主要使用SAX方式的NSXMLParser以及DOM方式的GDataXML,JSON数据解析主要使用NSJSONSeri ...
- Silverlight项目笔记7:xml/json数据解析、TreeView、引用类型与数据绑定错误、图片加载、虚拟目录设置、silverlight安全机制引发的问题、WebClient缓存问题
1.xml/json数据解析 (1)xml数据解析 使用WebClient获取数据,获取到的数据实例化为一个XDocument,使用XDocument的Descendants(XName)方法获得对应 ...
- Android之XML序列化和解析
XML文件是一种常用的文件格式,可以用来存储与传递数据 ,本文是XML文件序列化与解析的一个简单示例 写文件到本地,并用XML格式存储 /** * 写xml文件到本地 */ private void ...
- xml语法、DTD约束xml、Schema约束xml、DOM解析xml
今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...
- Android基础总结(12)——XML和JSON解析
XML和JSON解析 在网络上传输数据时最常用的格式有两种:XML和JSON.本文主要就是学习如何对这两种常用的数据格式进行解析. 1.XML和JSON的定义 XML:扩展标记语言 (Extensib ...
- JDOM方法实现对XML文件的解析
首先要下载JDOM.jar包,下载地址:http://download.csdn.net/detail/ww6055/8880371 下载到JDOM.jar包之后导入到工程中去. 实例程序: book ...
随机推荐
- js静态方法
1.ajax() 方法是属于“函数”本身的,和返回的对象没有关系 2.bark药调用,必须药new Hashiqi()得到对象,且由返回对象才能调用 3.ajax()方法药调用,不需要new对象,直接 ...
- T4模板试水篇1_入门
T4模板作为VS自带的一套代码生成器,功能有多强大我也不知道,最近查找了一些资料学习一下,做个笔记 更详细的资料参见: MSDN: http://msdn.microsoft.com/zh-cn/li ...
- httpd-vhosts.conf的配置
<VirtualHost *:80> DocumentRoot "D:\product\web\Public" ServerName demo.web.com Dire ...
- 优化DOM交互
DOM操作与交互要消耗大量时间,所以优化DOM交互有重大意义. 1.最小化现场更新 如果需要访问的DOM部分是已经显示的页面的一部分,那么这就是在进行一个现场更新.现场更新得越多,代码完成执行所需要的 ...
- ssh整合web.xml过滤器和监听器的配置 .
延迟加载过滤器 Hibernate 允许对关联对象.属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行.如果 Service 层返回一个启用了延迟 ...
- PHP自动生成前端的表单框架
<?php /** * 为当前所在菜单项样式 * @param string $controller_name * @param string $action_name * @param str ...
- tomcat之负载均衡(apache反响代理tomcat)
基于mod_proxy模块 配置内容如下: 准备工作-->检查模块 # httpd -D DUMP_MODULES……………………proxy_module (shared)proxy_balan ...
- 转:nginx location匹配规则
location匹配命令 ~ #波浪线表示执行一个正则匹配,区分大小写~* #表示执行一个正则匹配,不区分大小写^~ #^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配 ...
- Win7网络检测 WindowsAPICodePack
原文:http://www.cnblogs.com/yincheng01/archive/2010/05/30/2213234.html 在Windows7操作系统下,支持的网络类型越来越复杂,微软提 ...
- 原创:应用串行NOR闪存提升内存处理能力
在嵌入式系统中,NOR闪存一直以来仍然是较受青睐的非易失性内存,NOR器件的低延时特性可以接受代码执行和数据存储在一个单一的产品.虽然NAND记忆体已成为许多高密度应用的首选解决方案,但NOR仍然是低 ...