Android中XML解析自己的总结~~~XML?神马万一??
我这里没有什么很理论的东西~~说实话都是我自己的白话
主要原因是我也老上学的~~能看懂就不错了~~指望我在用理论性的语言说出来比较难谢谢
首先说明下为什么用SAX去解析~~现在随便去google一搜索很多的方法去解析XML
因为现在XML满大街都是~~新闻可以用~~天气可以用~~论坛博客都可以用~~
J2EE 里面经常用~~SSH框架~~同样用的很多
就连现在Android的核心配置文件AndroidManifest.xml都是XML格式的
以及res下面的文件基本上都是XML格式的~~在应用范围非常的广~~而且从存储和读取方面来说也比较方便
普通的解析XML有很多方式DOM、SAX、JDOM、DOM4J、Xerces、JAXP
在android里面有Dom和Sax两种方式~~
这里说用SAX解析~~SAX解析不是将XML下载到本地后再进行解压而是在保证网络连接的同时进行解析的
这样可以大大的节省空间~~当然了对网络也是有要求的必须联网~~WIFI~~GPRS(好像有限制)都可以
行了~~开整~~
首先要知道XML的结构~~~
下面给出一段XML文档从新浪的http://news.163.com/special/00011K6L/rss_newstop.xml中复制下来的~~后面的解析也是一这个XML为基础的
<?xml version="1.0" encoding="GBK"?> <?xml-stylesheet type="text/css" href="http://news.163.com/css/allrss.css"?> <rss version="2.0"> <channel> <title>网易头条新闻</title> <link>http://news.163.com/</link> <description>网易头条新闻</description> <pubDate>Thu, 19 Aug 2010 08:41:34 GMT</pubDate> <lastBuildDate>Thu, 19 Aug 2010 08:41:34 GMT</lastBuildDate> <item id="1"> <title><![CDATA[国新办王晨:营造文明和谐网络环境]]></title> <link>http://news.163.com/10/0819/16/6EFB4LFR0001124J.html</link> <description><![CDATA[资料图:王晨视察杭州网易 人民网北京8月19日报道 “文明上网 共建和谐”网上征文和知识竞赛活动启动仪式今天在北京举行,中宣部副部长,中央外宣办、国务院新闻办主任王晨在会上发表了讲话。讲话全文如下: 共同营造文明和谐的网络环境 ——在“文明上网 共建和谐”网上征文和知识竞赛活动启动仪式上的讲话 各位来宾,同志 ]]>......</description> <pubDate>2010-08-19 16:41:34</pubDate> </item> <item id="2"> <title><![CDATA[文明上网活动启动]]></title> <link>http://news.163.com/special/0001213L/renminwangzhengwen.html</link> <description><![CDATA[ ]]>......</description> <pubDate>2010-08-20 19:34:57</pubDate> </item> <item id="3"> <title><![CDATA[警方称长沙税务局爆炸案疑犯曾多次恐吓税官]]></title> <link>http://news.163.com/10/0821/02/6EIVOUQ500014AED.html</link> <description><![CDATA[爆炸现场(资料图) 犯罪嫌疑人刘赘衡被警方抓获 新京报8月21日报道 昨日,长沙警方公布了7月30日致4人死亡、9人受伤的“税务局爆炸案”疑犯刘赘衡的作案动机。警方称,刘赘衡因生意亏损归咎于并不相识的原建设银行湖南省分行行长彭某与商人陈某,并将在税务部门工作的彭某之子炸死。 曾来京津躲“瘟神” 长沙警方介绍 ]]>......</description> <pubDate>2010-08-21 06:25:28</pubDate> </item>
第一行的 <?xml version="1.0" encoding="GBK"?>-->是所有的XML文件的头文件“必须不能少”
1.0是版本~~GBK是编码当然也可以是UTF-8的但是我们是读取那么就不能设定编码~~
注意:android里解析XML是不支持GBK的会报错(后面的帖子会说如何转换格式的)
org.apache.harmony.xml.ExpatParser$ParseException:At line 4,column 11:not well-formed
第2,3行不知道什么意思~~反正和我的解析没有什么关系~~自己猜想是使用css的格式以及rss的版本
下面的就是重要的了~~
从第四行开始~~就是节点了~~节点是以<channel>开始~~以</channel>结尾 注意:里面的内容可以变但是结构不能变
也就是说我可以是<xixi></xixi>这样但是不能<xixi><xixi>这样~~这相当于创建2个节点但是没有结尾
后面一直到</channel>之前都属于子节点~~子节点的意思就是他们共有一个父节点(爹)
10-14行的时候出来了个新的东西我管他叫子节点的子节点(孙节点)
因为6-9行里的这几个孙节点都有一个父节点<item id="1">
在所有的<item id=“”>里他们又有一个共同的父节点<channel>
这个伦理关系比较麻烦~~父节点-->一级节点
子节点-->二级节点
子节点的子节点(孙节点)-->3级节点
以上都是我自己的称呼~~不要一一深究谢谢
上面的是基本结构~~在<item id=“”>里面有id=“”这个是指当前节点的属性
当然属性也可以自己定义的~~
明白了XML总结下
除了<?xml version="1.0" encoding="GBK"?>头文件
以及节点的格式是固定外~~基本上其他的都是我们可以自己定义的
这样给我们就有很大的空间了~~~只要了解了XML的结构无论是写入还是读取就比较好搞了