-----记录和回顾是一个比学习更重要的环节-----
一、首先,我们需要知道xml是做什么的
1.作为软件的配置文件
2.作为数据的载体(小型的数据库)
二、xml的语法
xml文件以xml后缀名结尾。
xml文件需要使用xml解析器去解析。浏览器内置了xml解析器。
1.标签
语法:<student></student> 开始标签 标签体内容 结束标签
1)<student/> 或 <student></student> 空标签。没有标签体内容
2)xml标签名称区分大小写。
3)xml标签一定要正确配对。
4)xml标签名中间不能使用空格
5)xml标签名不能以数字开头
6)注意: 在一个xml文档中,有且仅有一个根标签
2.属性
语法: <Student name="eric">student</Student>
注意:
1)属性值必须以引号包含,不能省略,也不能单双引号混用!!!
2)一个标签内可以有多个属性,但不能出现重复的属性名!!!
3.注释
语言: <!-- xml注释 -->
4.文档声明
语法: <?xml version="1.0" encoding="utf-8"?>
version: xml的版本号
encoding: 解析xml文件时查询的码表(解码过程时查询的码表)
注意:
1)如果在ecplise工具中开发xml文件,保存xml文件时自动按照文档声明的encoding来保存文 件。
2)如果用记事本工具修改xml文件,注意保存xml文件按照文档声明的encoding的码表来保存,保证xml文件保存的码表和encoding是一致的。
5.转义字符
在xml中内置了一些特殊字符,这些特殊字符不能直接被浏览器原样输出。如果希望把这些特殊字符按照原样输出到浏览器,对这些特殊字符进行转义。转义之后的字符就叫转义字节。
特殊字符 转义字符
< <
> >
" "
& &
空格 &nsbp;
三、dom4j解析xml
DOM解析原理:xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容。
1 /** 2 * 遍历所有节点 3 * @throws Exception 4 * 5 */ 6 @Test 7 public void test2 () throws Exception{ 8 //1.创建一个xml解析器对象 9 SAXReader saxReader = new SAXReader(); 10 //2.读取xml文档,返回Document对象 11 Document read = saxReader.read(new File("./src/test.xml")); 12 Element rootElement = read.getRootElement(); 13 getElement(rootElement); 14 } 15 16 private void getElement(Element element){ 17 System.out.println(element.getName()); 18 Iterator<Node> it = element.nodeIterator(); 19 while (it.hasNext()) { 20 Node node = it.next(); 21 if (node instanceof Element) { 22 Element element2 = (Element)node; 23 getElement(element2); 24 } 25 } 26 }
输出结果:
students
student
name
age
student
name
age