一、XML 简介
1.1 xml 的作用
- 用来保存数据,而且这些数据具有自我描述性
- 它还可以做为项目或者模块的配置文件
- 还可以做为网络传输数据的格式(现在 JSON 为主)
1.2 xml 语法
- 文档声明。
- 元素(标签)
- xml 属性
- xml 注释
- 文本区域(CDATA 区)
- xml 声明
<?xml version='1.0' encoding='UTF-8'?>
version 是版本号;encoding 是 xml 的文件编码;standalone="yes/no" 表示这个 xml 文件是否是独立的 xml 文件
- xml 注释
<!-- html 注释 -->
- 元素(标签):元素是指从开始标签到结束标签的内容
<title>java 编程思想</title>
- 元素命名规则:名称可以含字母、数字以及其他的字符;名称不能以数字或者标点符号开始;名称不能包含空格
- 单标签和双标签
<!--单标签格式:-->
<标签名 属性=”值” 属性=”值” ...... />
<!--双标签格式:-->
<标签名 属性=”值” 属性=”值” ......>文本数据或子标签</标签名>
- xml 属性:属性可以提供元素的额外信息。一个标签上可以书写多个属性。每个属性的值必须使用引号引起来。
<person sex="female"/>
1.3 语法规则
- 所有 XML 元素都须有关闭标签(也就是闭合)
- XML 标签对大小写敏感
- XML 必须正确地嵌套
- XML 文档必须有根元素
- XML 的属性值须加引号
- XML 中的特殊字符(比如
<
和>
),需要有特殊表示。 - 文本区域(CDATA 区):CDATA 语法可以告诉 xml 解析器,我 CDATA 里的文本内容,只是纯文本,不需要 xml 语法解析
<![CDATA[ 这里可以把你输入的字符原样显示,不会解析 xml ]]>
二、XML解析技术
2.1 dom4j解析技术
- dom4j 操作步骤
- 先加载 xml 文件创建 Document 对象
- 通过 Document 对象拿到根元素对象
- 通过根元素.elelemts(标签名); 可以返回一个集合,这个集合里放着。所有你指定的标签名的元素对象
- 找到你想要修改、删除的子元素,进行相应在的操作
- 保存到硬盘上
2.2 读取xml文件
public class Dom4JTest {
@Test
public void getDocument() throws DocumentException {
// 要创建一个 Document 对象,需要我们先创建一个 SAXReader 对象
SAXReader saxReader = new SAXReader();
// 这个对象用于读取 xml 文件,然后返回一个 Document。
Document document = saxReader.read("E:/Java/java-web/xml/src/main/resources/books.xml");
// 打印到控制台,看看是否创建成功
//System.out.println(document);
Element root = document.getRootElement();
List<Element> books = root.elements("book");
for (Element book : books) {
Element name = book.element("name");
Element price = book.element("price");
Element author = book.element("author");
System.out.println("书名:" + name.getText() + ", 价格:" + price.getText() + ", 作者:" + author.getText());
}
}
}