XML的概述:
eXtendsible markup language 可扩展的标记语言
XML有什么用?
1、可以ong来保存数据
2、可以用来做配置文件
3、数据传输载体
定义XML:
其实就是一个文件,文件的后缀为.xml
文档声明:
简单声明, version:解析这个xml的时候,使用什么版本的解析器解析
encoding:解析xml中的文字的时候,使用什么版本的解析器解析
standalone:no - 该文档会依赖关联其它文档,yes -- 这是一个独立的文档
encoding详解:
在解析这个xml的时候,使用什么编码去解析。 ---解码
文字,而是存储这些文字对应的二进制。那么这些文字对应的二进制到底是多少呢?根据文件使用的编码来得到
默认文件保存的时候,使用的是CBK的编码保存
所有想要xml能够正常的显示中文,有两种解决方法
1、让encoding也是CBK或者gb2312
2、如果encoding是utf-8,那么保存文件的时候也必须使用utf-8
3、保存的时候见到ANSI对应的其实是我们的本地编码GBK
为了通用,最好使用UTF-8编码保存,以及encoding都是UTF-8
元素定义(标签):
1、<>括起来的都叫元素。成对出现
2、文档声明下来的第一个元素叫做根元素(根标签)
3、标签里面可以嵌套标签
4、空标签
既是开始也是结束,一般配合属性来用
5、标签可以自定义
XML 命名规则
XML 元素必须遵循以下命名规则
名称可以包含字母、数字以及其他的字符
名称不能以数字或者标点符号开头
名称不能以字符“xml”(或者XML、xml)开头
名称不能包含空格
简单元素&复杂元素:
简单元素
元素里面包含了普通的文字
复杂元素
元素里面还可以嵌套其他的元素
属性的定义:
定义在元素里面,元素名称>
张三
18
李四
28
xml的注释:
与html的注释一样
不允许放置在文档的第一行。必须在文档声明的下面
CDATA区:
非法字符
严格的讲,在XML中仅有字符 "
< <
& &
XML解析:
获取元素里面的字符数据或者属性数据
XML的解析方式:
有很多种,但是常用的只有两种
DOM
SAX
Dom4j的基本用法:
element.element(“stu”):返回该元素下的第一个stu元素
element.element();返回该元素下的所有子元素
1、创建SaxReader对象
2、指定解析的xml
3、获取根元素
4、根据根元素获取子元素或者下面的子孙元素
try {
//1. 创建sax读取对象
SAXReader reader = new SAXReader(); //jdbc -- classloader
//2. 指定解析的xml源
Document document = reader.read(new File("src/xml/stus.xml"));
//3. 得到元素、
//得到根元素
Element rootElement= document.getRootElement();
//获取根元素下面的子元素 age
//rootElement.element("age")
//System.out.println(rootElement.element("stu").element("age").getText());
//获取根元素下面的所有子元素 。 stu元素
Listelements = rootElement.elements();
//遍历所有的stu元素
for (Element element : elements) {
//获取stu元素下面的name元素
String name = element.element("name").getText();
String age = element.element("age").getText();
String address = element.element("address").getText();
System.out.println("name="+name+"==age+"+age+"==address="+address);
}
} catch (Exception e) {
e.printStackTrace();
}