这个案例需要自行导入Dom4j的包,然后就可以使用java读取xml标签和标签属性信息了。
xml代码
<?xml version="1.0" encoding="utf-8" ?>
<books>
<book sn="zsp1">
<name>时间简史</name>
<author>霍金</author>
<price>75</price>
</book>
<book sn="zsp2">
<name>平凡的世界</name>
<author>路遥</author>
<price>70</price>
</book>
</books>
package cn.zsp.pojo;
public class Book {
private String sn ;
private String name ;
private String author;
private double price ;
public Book() {
}
public Book(String sn, String name, String author, double price) {
this.sn = sn;
this.name = name;
this.author = author;
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"sn='" + sn + '\'' +
", name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
'}';
}
}
package cn.zsp.pojo;
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() {
SAXReader saxReader=new SAXReader();
Document document= null;
try {
document = saxReader.read("src/books.xml");
} catch (DocumentException e) {
e.printStackTrace();
}
}
@Test
public void test2() throws DocumentException {
SAXReader saxReader=new SAXReader();
//1读取books. xml文件
Document document=saxReader.read("src/books.xml");
//2通过Document对象获取根元素
Element rootElement = document.getRootElement();
List <Element>elements = rootElement.elements("book");
//3通过根元素获取book标签对象
for (Element book: elements)
{ //asXML()把标签对象。转换为标签字符串
//System.out.println(book.asXML());
Element nameElement = book.element("name");
//getText();可以获取标签中的文本内容
String name =nameElement.getText();
//System.out.println(name);
//elementText直接获取指定标签名的文本内容
String price =book.elementText("price");
//System.out.println(price);
String author =book.elementText("author");
String sn = book.attributeValue("sn");
System.out.println(new Book(sn,name,author,
Double.parseDouble(price)));
}
//4遍历,处理每Tbook标签转换为Book类
}
}