知识点:XML
XML(EXtensible Markup Language),可扩展标记语言
特点
- XML与操作系统、编程语言的开发平台无关
- 实现不同系统之间的数据交换
作用
- 数据交互
- 配置应用程序和网站
- Ajax基石
XML文档结构
- 声明
- 文档元素描述信息(文档结构)
XML标签
XML文档内容由一系列标签元素组成
<元素名 属性名="属性值">元素内容</元素名>
**属性名见名知意,简洁,不要使用-(中横线)、.(点)、:(冒号)
空元素:
- <name> </name>
- <name></name>
- <name/>(作用等同上面)
语法:
- 属性值用双引号包裹
- 一个元素可以有多个属性
- 属性值中不能直接包含<、"、&(不建议:'、>)
节点:
- 元素节点
- 文本节点
- 属性节点
————————————————————————————————
1.1XML编写注意事项
所有XML元素都必须有结束标签
XML标签对大小写敏感
XML必须正确的嵌套
同级标签以缩进对齐
元素名称可以包含字母、数字或其他字符
元素名称不能以数字或者标点符号开始
元素名称中不能含空格
————————————————————————————————
1.2转移符
符号 | 转移符 |
< | < |
> | > |
" | " |
' | ' |
& | & |
当元素中出现很多特殊字符时,可以使用CDATA节,如:
<description>
<![CDATA[讲解了元素<title>以及</title>的使用]]>
</description>
————————————————————————————————
1.3XML解析器
解析器类型
非验证解析器
检查文档格式是否良好
验证解析器
使用DTD(Document Type Define)检查文档的有效性
————————————————————————————————
1.4XML命名空间
XML命名空间提供避免元素命名冲突的方法
如:
<h:table xmlns:h="http://www.w3.org/TR/heml4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table xmlns:f="http://www.w3school.com.cn/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80<f:width>
<f:length>120</f:length>
</f:table>
与仅仅使用前缀不同,我们为<table>标签添加了一个xmlns属性,这样就为前缀赋予了一个与某个命名空间相关联的限定名称
————————————————————————————————
1.5解析XML技术
DOM(Document Object Model):Dom把XML文档映射成一个倒挂的树
- 基于XML文档树结构的解析
- 适用于多次访问的XML文档
- 特点:比较消耗资源
SAX
- 基于事件的解析
- 适用于大量数据的XML文档
- 特点:占用资源少,内存消耗小
DOM4J
- 非常优秀的Java XML API
- 性能优异、功能强大
- 开放源代码
————————————————————————————————
1.6DOM解析
DOM解析XML文件步骤
- 创建解析器工厂对象
- 解析器工厂对象创建解析器对象
- 解析器对象指定XML文件创建Document对象
- 以Document对象为起点操作DOM树
DOM解析包:org.w3c.dom | ||
常用接口 | 常用方法 | 说明 |
Document 表示整个XML文档 | Nodelist getElementByTagName(String Tag) | 按文档顺序返回文档中制定标记名称的所有元素集合 |
Element createElement(String tagName) | 创建制定标记名称的元素 | |
Node 该文档树中的单个节点 | Nodelist getChildNodes() | 获取该元素的所有子节点,返回节点集合 |
Element XML文档中的一个元素 | String getTagName() | 获取元素名称 |