XML
XML的概念
XML(eXtensible Markup Language) 可扩展标记语言
XML文档是结构化的,其结构化主要体现在以下两个方面:
- 每一部分都和其他元素有关联,这种关联就形成了树形结构.
- 标记本身的含义与它 描述的信息相分离.
XML的起源与作用
Ø XML和HTML一样,都衍生于SGML
Ø 作用就是要统一信息的结构
XML文档结构
|
XML文档的构成
- 文档声明
- 元素定义
- 属性定义
- 注释
- CDATA区
- 特殊字符
- 处理指令
文档声明:
<?xml version="1.0" ?>
其他属性
- encoding
- standalone
元素定义
与HTML一样,XML文档的主体内容部分也是由元素(Element)组成的
一个XML元素由一个标记来定义,包括开始和结束标记以及其中的内容
空元素:<img></img>和<img/>
遵守的规范:区分大小写 ;不能以数字或“_”开头;不能以字符组合xml、XML、Xml开头;不能包含空格;名称中间不能包含冒号
属性定义
Ø 与HTML一样 也可以为XML标签设置属性。
Ø XML中的属性也是自己随便定义的,用与对标签进一步说明和描述
Ø 属性值一定要用双引号或单引号引起来
<售价 单位=“元”>25</售价>
Ø 属性可以改为子元素来描述同样的信息
<售价>
<单位>元</单位>
<价格>25</价格>
</售价>
注释
Ø XML文档与HTML文档的注释方式完全一样
Ø 需注意的
• 不要把注释放在XML声明之前。
• 注释不能嵌套使用。
CDATA区
Ø 指的是不想被解析程序解析的一片原始数据区,它以“<![CDATA[”开始,以“]]>”结束。
特殊字符:
特殊字符 | 替代字符 |
& | & |
< | < |
> | > |
" | " |
' | ' |
处理指令
Ø 用来为处理XML文档的应用程序提供指示信息
Ø 处理指令以“<?”作为开头,以“?>”作为结尾
Ø XML分析器把处理指令原封不动地传给应用程序,由应用程序来解释这个指令,按照它所提供的信息进行处理
<?xml-stylesheettype="text/css" href= "book.css"?>
JSON(JavaScript ObjectNotation)是一种轻量级的数据交换格式。它基于JavaScript的子集,是一种记录键/值对的字符串。
JSON格式的字符串可以用很多种程序设计语言解析,和XML相比,它的格式更简单,解析起来也更方便
JSON对象
对象是一个无序的键值对集合。一个对象以“{”开始,以“}”结束。每个“名称”后跟一个“:”,键值对之间使用“,”分隔。
JSON示例:
{
"name":"BillGates",
"street":"FifthAvenue New York 666",
"age":56,
"phone":"5551234567"
}
JSON与JavaScript
字符串形式创建JSON对象:
var txt='{"name":"BillGates","street":'
+'"Fifth Avenue NewYork 666",'
+'"age":56,"phone":"5551234567"}';
JavaScript解析JSON对象:
var obj=eval("("+txt+")");
var name=obj.name;
var street=obj.street;
var age=obj.age;
var phone=obj.phone;
JavaScript创建包含JSON数组的对象:
var txt='{"employees":['
+'{"firstName":"Bill",'
+'"lastName":"Gates"},'
+'{"firstName":"George",'
+'"lastName":"Bush"},'
+'{"firstName":"Thomas",'
+'"lastName":"Carter"}]}';
JavaScript解析包含JSON数组的对象:
var obj=eval("("+txt+")");
var employees=obj.employees;
var firstName1=employees[0].firstName;
var lastName1=employees[0].lastName;
var firstName2=employees[1].firstName;
var lastName2=employees[1].lastName;
XmlPull 简介:
XmlPull 是一种解析XML的工具,使用该工具需要导入两个包 kxml2-2.3.0.jar 和 xmlpull_1_1_3_4c.jar
比较重要的类和接口有以下几个:
XmlPullParserFactory 是一个工厂类,用来产生一个XML解析器对象, XmlPullParserFactory 不能直接使用new 关键字创建对象,要使用
newInstance()方法产出该类得对象, XmlPullParserFactory 通过调用newPullParser()方法 产生一个XML 解析器对象.
XmlPullParser是XML解析器,是解析XML文档的核心, XmlPullPaser 是基于流的解析器,在读取XML文档的过程中,如果读到标签的开始或者结束,将返回一个int的值表示所读内容, 这些int值以静态属性的形式,其含义如下表所示:
值 | 含义 |
SATRT_DOCUMENT | 读到XML文档的声明 |
END_DOCUMENT | 读到XML文档的结束 |
START_TAG | 读到XML 的开始标签 |
END_TAG | 读到XML的结束标签 |
TEXT | 读到XML的文本返回 |
值 | 含义 |
setInput | 设置要读取的文件 |
getEventType | 获得读取内容的类型 |
nextText | 获得节点文本 |
getName | 获得标签名称 |
next | 读取下一个节点 |