XML_JSON

来源:互联网 发布:山东黄金历史交易数据 编辑:程序博客网 时间:2024/06/16 21:37

XML

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();  }
JSONJSON是一款轻量级的数据交换格式<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);  ......}






0 0