目录
xml 是可扩展的标记性语言。
xml 的主要作用有:
我们先创建一个简单 XML 文件,用来描述图书信息。
- xml声明。
-
- <books>
-
- <book id="SN123123413241">
-
- <name>java编程思想name>
-
- <author>华仔author>
-
- <price>9.9price>
- book>
- books>
元素是指从开始标签到结束标签的内容。
xml 的标签属性和 html 的标签属性是非常类似的,属性可以提供元素的额外信息
在标签上可以书写属性:
CDATA 格式:
不管是 html 文件还是 xml 文件它们都是标记型文档,都可以使用 w3c 组织制定的 dom 技术来解析。

document 对象表示的是整个文档(可以是 html 文档,也可以是 xml 文档)
早期 JDK 为我们提供了两种 xml 解析技术 DOM 和 Sax 简介(已经过时,但我们需要知道这两种技术)
dom 解析技术是 W3C 组织制定的,而所有的编程语言都对这个解析技术使用了自己语言的特点进行实现。Java 对 dom 技术解析标记也做了实现。
sun 公司在 JDK5 版本对 dom 解析技术进行升级:SAX( Simple API for XML )
SAX 解析,它跟 W3C 制定的解析不太一样。它是以类似事件机制通过回调告诉用户当前正在解析的内容,它是一行一行的读取 xml 文件进行解析的,不会创建大量的 dom 对象。所以它在解析 xml 的时候,在内存的使用和性能上都优于 Dom 解析。
第三方的解析:
由于 dom4j 它不是 sun 公司的技术,而属于第三方公司的技术,我们需要使用 dom4j 就需要到 dom4j 官网下载 dom4j 的 jar 包。
- <books>
- <book sn="SN12341232">
- <name>辟邪剑谱name>
- <price>9.9price>
- <author>班主任author>
- book>
- <book sn="SN12341231">
- <name>葵花宝典name>
- <price>99.99price>
- <author>班长author>
- book>
- books>
遍历标签获取所有标签中的内容
- @Test
- public void test2() throws DocumentException {
- //1.读取books.xml文件
- SAXReader reader = new SAXReader();
- //在Jubit测试中,相对路径是从模块名开始算
- Document document = reader.read("src/books.xml");
-
- //2.通过document对象获取根元素
- Element rootElement = document.getRootElement();
-
- //3.通过根元素获取book标签对象
- //Element.elements(标签名)它可以拿到当前元素下的指定的子元素的集合
- List
books = rootElement.elements("book"); -
- //4.遍历,处理每个标签转换为Book类
- for(Element book:books){
- //asXML():把标签对象转换为标签字符串
- Element nameElement = book.element("name");
- //asXML():把标签对象转换为标签字符串
- System.out.println(nameElement.asXML());
- //getText():文本内容
- System.out.println(nameElement.getText());
- //attributeValue:标签的属性值
- System.out.println(book.attributeValue("sn"));
- }
- }
输出结果:
辟邪剑谱
辟邪剑谱
SN12341232
葵花宝典
葵花宝典
SN12341231