XML_JSON
2016-07-11 09:06
344 查看
XML
XML:可扩展标记语言,用来传输和储存数据
XML的语法规范
所有XML都须有关闭标签
<TextView></TextView>
<TextView/>
XML标签对大小写敏感
XML必须正确的嵌套
Android中XML的解析:
SAX(不常用)
DOM4J
PULL
DOM4J
DOM解析是把整篇XML文档都加在到内存中,然后使用DOM相关的API对某个或某些标签进行增删改查
PULL
PULL解析是使用事件驱动的方式,边读取边解析。当PULL解析器遇到文档中的某个节点时,
都会触发相应事件,我们可以捕获这些事件,并且在该时间点解析相关内容。
XML:可扩展标记语言,用来传输和储存数据
XML的语法规范
所有XML都须有关闭标签
<TextView></TextView>
<TextView/>
XML标签对大小写敏感
XML必须正确的嵌套
Android中XML的解析:
SAX(不常用)
DOM4J
PULL
DOM4J
DOM解析是把整篇XML文档都加在到内存中,然后使用DOM相关的API对某个或某些标签进行增删改查
PULL
PULL解析是使用事件驱动的方式,边读取边解析。当PULL解析器遇到文档中的某个节点时,
都会触发相应事件,我们可以捕获这些事件,并且在该时间点解析相关内容。
DOM4J比PULL解析浪费资源,但是API设计合理、简单。 PULL比较适合较大的XML文档解析。 DOM4J可以把文档内容都装入内存,然后可以获取 任意的标签及标签属性、文本等内容。 如何使用DOM4J解析XML? 1>导入jar包。 2>获取Document对象。 3>调用Document.getRootElement()获取根节点。 4>调用Element对象的相关API解析xml文件。 最常用的API: SAXReader reader = new SAXReader(); Document doc = reader.read(...); e=doc.getRootElement() e.elements() 获取子标签集合 e.iterator() 获取迭代子标签的迭代器 e.getName() 标签名 e.getText() 标签文本 e.getTextTrim() .... ...... PULL: PULL解析是使用事件驱动的方式,边读取边解析。 当PULL解析器遇到文档中的某个节点时,都会触发 相应事件,我们可以捕获这些事件,并且在该时间 点解析相关内容。 如何使用PULL的方式解析xml? 1>创建xmlpull解析器: XmlPullParser parser = Xml.newPullParser(); parser.setInput(is); 2>获取事件类型,并且配合while循环,不断驱动事件 并且解析文档内容: int type=parser.getEventType(); while(type != XmlPullParser.END_DOCUMENT){ 根据事件类型解析文档 向后继续驱动事件 type = parser.next(); }
JSON JSON是一款轻量级的数据交换格式 <user> <name>zs</name> <age>21</age> <gender>M</gender> <aihao>吃</aihao> <aihao>喝</aihao> <aihao>玩</aihao> <aihao>乐</aihao> <school> <name>tarena</name> <loc>bj</loc> </school> </user> { "name":"zs", "age":21, "gender":"M", "aihao":["吃","吃","吃","吃"], "school":{ "name":"tarena", "loc":"bj" } } 解析JSON需要两个类: JSONObject : 描述一个JSON对象 {} JSONArray : 描述一个JSON数组 [] 如何解析JSONObject: String json={ "name":"zs", "age":21, "gender":"M", "aihao":["吃","吃","吃","吃"], "school":{ "name":"tarena", "loc":"bj" } } JSONObject obj = new JSONObject(json); String name=obj.getString("name"); obj.getInt("age"); JSONArray ary=obj.getJSONArray("aihao"); obj.getJSONObject("school").getString("loc"); 解析JSONArray: ary.length() 数组长度 ary.getString(0) 获取下标为0的字符串 ["", 234, true, "", 2342] ary.getInt(1) [{},{},{},{},{},{}] for(int i=0; i<ary.length(); i++){ ary.getJSONObject(i); ...... }
相关文章推荐
- 使用 Python 处理 JSON 格式的数据
- XML 与 JSON 优劣对比
- VBA将excel数据表生成JSON文件
- As3.0 xml + Loader应用代码
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- ext读取两种结构的xml的代码
- 实例解析Ruby程序中调用REXML来解析XML格式数据的用法
- Ruby中XML格式数据处理库REXML的使用方法指南
- newtonsoft.json解析天气数据出错解决方法
- C#中如何使用 XmlReader 读取XML文件
- C#针对xml基本操作及保存配置文件应用实例
- Ruby使用REXML库来解析xml格式数据的方法
- Ruby程序中创建和解析XML文件的方法
- Ruby的XML格式数据解析库Nokogiri的使用进阶
- asp下查询xml的实现代码
- sqlserver FOR XML PATH 语句的应用
- 使用sp_xml_preparedocument处理XML文档的方法
- EBS xml publisher中文乱码问题及解决办法