XML
- 可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
什么是可扩展标记语言?
- 可扩展标记语言是一种很像超文本标记语言的标记语言。
- 它的设计宗旨是传输数据,而不是显示数据。
- 它的标签没有被预定义。您需要自行定义标签。
- 它被设计为具有自我描述性。
- 它是W3C的推荐标准。
可扩展标记语言和超文本标记语言之间的差异
- 它不是超文本标记语言的替代。
- 它是对超文本标记语言的补充。
- 它和超文本标记语言为不同的目的而设计
Xml文档说明
xml声明 xml文档总是以一个xml声明开始,其中指明所用的xml版本、文档的编码、
文档的独立性信息。格式如下:
<?xml version=“1.0” encoding=“UTF-8”?>
DTD:文档类型定义
<!DOCTYPE greeting[ <!ELEMENT greeting(#PCDATA)>>
元素:
- xml中,元素由开始标签、元素内容和结束标签构成,对于空元素,由空元素标签构成。每个元素都有一个用名字标识的类型,同时它可以有一个属性说明集,每一个属性说明有一个名字和一个值。
元素的四种形式:
空元素:<student/>
带属性的空元素:<student name=”jason" age="10"/>
带内容的元素:<student > test</student>
带有内容和属性的元素:<student name=”jason”> test</student>
解析xml的几种方式
1:DOM
- Document Object Module:文档对象模型
- 特点:一次加载到内存中,占用大量内存
- 常用类库:DOM, JDOM ,DOM4j
2:SAX
- Simple API for XMl基于事件的xml简单API
- 特点:事件驱动模型,按顺序读取xml,占用内存少,速度快
- 常用类库: JAXP
创建一个xml文件作为测试
<?xml version="1.0" encoding="UTF-8" ?>
<students>
<student idcard="41272400000000">
<name>Lingdu</name>
<sex>boy</sex>
</student>
<student idcard="44192400000000">
<name>alice</name>
<sex>girl</sex>
</student>
</students>
创建一个Student类作为测试
/**
* 测试类
* @author Administrator
*/
public class Student {
String idcard;
String name;
String sex;
public String getIdcard() {
return idcard;
}
public void setIdcard(String idcard) {
this