地址:C:\Users\李想\Desktop\作业\javaweb\资料\05-XML & Tomcat\笔记\05_尚硅谷_xml_王振国 - 课堂笔记.pdf
引入xml解析技术dom4j依赖包
<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
创建Books对象类
public class Books {
private String sn;
private String name;
private String author;
private BigDecimal price;
.....
}
创建对应的books.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!--第一个xml文件-->
<books>
<book sn="asdffsg001">
<name>活着</name>
<author>余华</author>
<price>56.00</price>
</book>
<book sn="asdffsg002">
<name>平凡的世界</name>
<author>路遥</author>
<price>156.00</price>
</book>
</books>
解析xml文件(重点)
@Test
public void test1() throws DocumentException {
//1.读取xml文件
SAXReader reader = new SAXReader();
Document document = reader.read("src/test/webapp/xml/books.xml");
//2.获取根元素
Element rootElement = document.getRootElement();
//3.获取根元素中的子元素(全部存进list集合中)
List<Element> list = rootElement.elements();
//4.创建结果集
ArrayList<Books> books = new ArrayList<>();
//5.遍历元素对象
/**
* 注意:属性用attribute获取<book sn="asdffsg001">
* 元素用element获取 <name>活着</name>
*/
for (Element e:list){
String sn = e.attributeValue("sn");
String name = e.elementText("name");
String author = e.elementText("author");
String price = e.elementText("price");
books.add(new Books(sn,name,author, BigDecimal.valueOf(Double.parseDouble(price))));
}
books.forEach(System.out::println);
}