之前如果你问我什么是xml,我绝对会跟你说...布局文件和清单文件...,以下是我现在的理解
首先看一下介绍,XML是可扩展的标记语言(Extensible Markup Language),标准通用标记语言的子集,一种用来标记电子文件使其具有结构性的标记语言,他可以用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,他非常适合万维网的传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
嗯...不太明白,再看看xml的特点
〉〉xml是一种标记语言,很类似html
〉〉xml设计宗旨是用来传输数据,而非显示数据
〉〉xml没有被自定义,我们需要自定义标签
〉〉 xml被设计为有自我描述性
哦哦,综合上述几点,我们大概可以得出这样一个结论:xml主要是用于传输数据的类似于html的可以自定义标签的方便快捷的网络语言
咳咳...由于是学习笔记,我也不造对不对,请耐心往下看
下面来看一下xml和HTML的区别,我们可以通过熟知的HTML来认识xml
〉〉xml被设计用来传输数据,其焦点是数据内容
〉〉HTML被设计用来显示数据,其焦点是数据的外观
好了,从这里我们可以总结一下,xml就是一种传输信息的标记语言,那么,我们开始正式学习xml!
先学习一下xml的特性:
1.他 仅仅是纯文本而已
2.他没有预定义的标签,也就是他允许自定义标签
好,听起来还不错,不过...要怎么开始呢,既然他可以自定义标签,所以,我感觉要学习xml就要先从他的语法中下手
xml的语法简介:
// 省略关闭标签是非法的、所有元素必须有关闭标签
// xml标签对大小写敏感
// xml必须正确的嵌套
// xml文档必须有跟元素
// xml的属性值必须加引号
// xml中空格会被保留
...好,听起来虚虚的,我们来看一段demo
<bookstore> //拥有元素内容
<book category = "CHILDERN">//属性值加引号
<title> Harry Potter </title>
<author> J K. Rowling </author>
<year> 2005 </year>
<price> 29.99 </price>
</book>
</bookstore> //必须有关闭标签
//所有标签自定义
好啦,暂时了解这么多,下面要学习如何在android中读取和解析xml数据啦
(创建工程略)
首先,在布局文件里设置一个textview用来显示数据,给他铺满窗口(fill_parent)
然后,在activity 里找到这个textview(略)
下面,我们要找到一个xml文件,弄个简单的好学习,放到工程下的资源文件夹里
然后,在activiy里写入这入行代码来获得xml文件“getAssets().open(XXXX.xml) ; ”并捕获异常(返回值为一个inputstream)
然后用Android自带的api:Documentbuilderfactory,获取一个documentBuilder
一个document对象对应的就是一个xml数据类型
再用Builder的parse方法获得inputstream
用document的getDocumentElement方法获得该xml文件的根元素
用element的getelementsbytagname来获取其内容,用nodelist来承接(tag就是...说不出来,稍后会发出xml代码再指明)
循环遍历nodelist,再用text的append来显示用nodelist的getelementsbytagname找到tag然后再用gettextContent()来获得就可以啦