一、xml基础
- 创建第一个xml文件
1.新建模块----Java工程
2.在工程目录下创建xml文件夹
3.在xml文件下,新建books.xml文件
<?xml version="1.0" encoding="utf-8" ?>
<!--
1.开头第一句表示xml文件的声明
2.xml version="1.0" version表示xml的版本
3.encoding="utf-8" encoding表示xml文件本身的编码
-->
<!--books表示多个图书信息-->
<books>
<!--book表示一个图书信息-->
<book sn="SN123143234234432">
<!--name标签表示书名-->
<name>时间简史</name>
<!--author标签表示作者-->
<author>霍金</author>
<!--price表示价格-->
<price>75</price>
</book>
</books>
- xml基本概念
<!--
XML简介
1.什么是xml?
xml是可扩展的标记性语言
2.xml的作用
xml的主要作用有:
1.用来保存数据,而且这些数据具有自我描述性
2.作为项目或者模块的配置文件
3.作为网络传输数据的格式(现在以JSON为主)
3.xml语法
1.文档声明
2.元素(标签)
3.xml属性
4.xml注释
5.文本区域(CDATA区)
1.可以告诉xml解析器,CDATA里的文本内容,只是纯文本,不需要xml语法解析
2.格式: <![CDATA[
文本内容
]]>
-->
- dom4j读取xml文件得到Document对象
- dom4j解析xml生成Book类
package booksClass;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;
import java.util.List;
public class Dom4jTest {
@Test
public void test1() throws DocumentException {
//1.创建一个SAXReader输入流,去读取xml配置文件,生成Document对象
SAXReader saxReader = new SAXReader();
try {
//在junit测试中,相对路径是从模块名开始算,意思是直接从模块名向下找
Document doc = saxReader.read("src/books.xml");
System.out.println(doc);
} catch (Exception e) {
e.printStackTrace();
}
}
/*
读取books.xml文件生成Book类
*/
@Test
public void test2() throws DocumentException {
//1.读取books.xml文件
SAXReader reader = new SAXReader();
Document doc = reader.read("src/books.xml");
//2.通过文档对象获取根元素
Element rootElement = doc.getRootElement();
//3.通过根元素获取book标签对象
List<Element> books = rootElement.elements("book");
//4.遍历,处理每个book标签转换为book类
for(Element book : books) {
Element nameElement = book.element("name");
//getText()用于获取标签中的文本内容
String nameText = nameElement.getText();
//直接获取指定标签名的文本内容
String priceText = book.elementText("price");
String authorText = book.elementText("author");
//获取属性值
String snValue = book.attributeValue("sn");
System.out.println(new Book(snValue,nameText,authorText,Double.parseDouble(priceText)));
}
}
}