XML 和 JSON
XML( EXtensible Markup Language)
可扩展标记语言
特点
XML与操作系统、编程语言的开发平台无关
实现不同系统之间的数据交换
作用
数据交互
配置应用程序和网站
Ajax基石
XML文档内容由一系列标签元素组成
<元素名 属性名="属性值">元素内容</元素名>
空元素:
属性值用双引号包裹
一个元素可以有多个属性
属性值中不能直接包含 < 、" 、 &
不建议使用的字符: ’ 、 >
XML中的转义符列表
符号 | 转义符 |
---|---|
< | & lt ; |
> | & gt ; |
" | & quot ; |
’ | & apos ; |
& | & amp ; |
当元素中出现很多特殊字符时,可以使用CDATA节,CDATA是不应该由XML解析器分析的文本数据
XML编写注意事项
所有XML元素都必须有结束标签
XML标签对大小写敏感
XML必须正确的嵌套
同级标签以缩进对齐
元素名称可以包含字母、数字或其他的字符
元素名称不能以数字或者标点符号开始
元素名称中不能含空格
XML解析器
解析器类型
非验证解析器
检查文档格式是否良好
验证解析器
使用DTD检查文档的有效性
XML命名空间
XML命名空间的作用
解决在复杂、大型XML文件中, 出现名称相同, 但是含义不同的元素
DOM解析XML
DOM介绍
文档对象模型(Document Object Model)
DOM把XML文档映射成一个倒挂的树
DOM
基于XML文档树结构的解析
适用于多次访问的XML文档
特点:比较消耗资源
DOM4J
非常优秀的Java XML API
性能优异、功能强大
开放源代码
SAX
基于事件的解析
适用于大数据量的XML文档
特点:占用资源少、内存消耗大
常用接口介绍
DOM解析包:org.w3c.dom
常用接口 | 常用方法 | 说明 |
---|---|---|
Document:表示整个XML文档 | NodeList getElementsByTagName(String Tag) | 按文档顺序返回文档中指定标记名称的所有元素集合 |
Document:表示整个XML文档 | Element createElement(String tagName) | 创建指定标记名称的元素 |
Node:该文档树中的单个节点 | NodeList getChildNodes() | 获取该元素的所有子节点, 返回节点集合 |
Element:XML文档中的一个元素 | String getTagName() | 获取元素名称 |
访问DOM树节点
DOM解析XML文件步骤
STEP 1:创建解析器工厂对象
STEP 2:解析器工厂对象创建解析器对象
STEP 3:解析器对象指定XML文件创建Document对象
STEP 4:以Document对象为起点操作DOM树
public class ParseXMLDemo{
//全局变量:Document对象
Document document = null;
//解析XML文件获取相应Document对象
public void getDocument(){
//解析器工厂(DocumentBuilderFactory)
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try{
//解析器(DocumentBuilder)
DocumentBuilder builder = factory.newDocumentBuilder();
//解析相应XML文件获得Document对象
builder.parse("收藏信息.XML");
}catch(ParseConfigurationException e){
e.printStackTrace();
}catch(SAXException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
JSON( JavaScript Object Notation)
轻量级的文本数据交换格式
具有自我的描述性
比XML传输速度快
JSON最初用来表示JavaScript中的对象, 但目前已独立于JavaScript, 成为最为常用的数据格式之一
语法规则
两大数据结构:对象和数组
大括号内为对象
中括号内为数组
对象中的数据由名称/值对构成
值的类型可为字符串、数字、布尔值、null、数组、对象
数据之间由逗号分隔
数组中的数据类型同名称/值对中值的类型
FastJson
由阿里开源的JSON解析框架
XML VS JSOC
XML
可扩展标记语言
编写格式良好的XML文档
使用DOM操作XML数据
显示/添加/保存
JSON
轻量级的文本数据交换格式