books.xml文件的书写:
<?xml version="1.0" encoding="UTF-8" ?>
<!--
<?xml version="1.0" encoding="UTF-8" ?>
以上内容就是xml文件的声明,
version="1.0" version表示xml的版本
encoding="utf-8" encoding表示xml文件本身的编码
-->
<books>
<book sn="SN321324"><!-- book表示一个图书信息 sn属性表示图书序列号-->
<name>时间简历</name><!--name标签表示书名 -->
<author>陈彬
<![CDATA[>>>><<<<<陈彬]]>
</author><!--auther表示作者-->
<price>23</price><!--price表示价格-->
</book>
<book sn="SN238238">
<name>从Java入门到放弃</name>
<author>康师傅</author>
<price>22</price>
</book>
</books>
Book类的书写:
package com.atshangqiu.web;
import java.math.BigDecimal;
public class Book {
private String sn;
private String name;
private BigDecimal price;
private String auther;
@Override
public String toString() {
return "Book{" +
"sn='" + sn + '\'' +
", name='" + name + '\'' +
", price=" + price +
", auther='" + auther + '\'' +
'}';
}
public Book() {
}
public Book(String sn, String name, BigDecimal price, String auther) {
this.sn = sn;
this.name = name;
this.price = price;
this.auther = auther;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public String getAuther() {
return auther;
}
public void setAuther(String auther) {
this.auther = auther;
}
}
Dom4jTest类的书写:
package com.atshangqiu.web;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;
import org.xml.sax.XMLReader;
import java.math.BigDecimal;
import java.util.List;
/*
读取books.xml文件生成Book类
*/
public class Dom4jTest {
@Test
public void test() throws Exception {
//1.读取books.xml文件
SAXReader saxReader = new SAXReader();
//在junit测试中,相对路径是从模块名开始算
Document document = saxReader.read("src/books");
//2.通过document对象获取根元素
Element rootElement = document.getRootElement();
//3.通过根元素获取book标签对象
//element(),elements()都是通过标签名查找子元素
List<Element> books = rootElement.elements("book");
//4.遍历,处理每个book标签转换为Book类
for(Element book:books){
//asXML是把标签对象,转换为标签字符串
//System.out.println(book.asXML());
Element name = book.element("name");
//getText(),可以获取标签中的文本内容
String text = name.getText();
String author = book.elementText("author");
String price = book.elementText("price");
String sn = book.attributeValue("sn");
System.out.println(new Book(sn,text,new BigDecimal(price),author));
}
}
}
用到的jar包:
dom4j-1.6.1.jar