package itat.org.xml;
import java.util.ArrayList;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class TestXML04 {
public static void main(String[]ages){
try {
SAXReader reader = new SAXReader();
Document d = reader.read(TestXML04.class.getClassLoader().getResource("xml/books.xml"));//获取类路径名的文件夹
Element root = d.getRootElement();//获得根元素
Element e = findByTitle(d, "java编程思想");
System.out.println(e.elementText("price"));
} catch (DocumentException e) {
e.printStackTrace();
}
}
private static Element findByTitle(Document d,String title){
Element root = d.getRootElement();
List eles = root.elements("book");
for(Element e:eles){
String t = e.elementTextTrim("title");//获得返回的一个去掉空格的元素文本(title)
if(t.equals(title)){//比较传进来的title和获得的
return e;
}
}
return null;
}
private static void tran(){
SAXReader reader = new SAXReader();
try {
Document d = reader.read(TestXML04.class.getClassLoader().getResource("xml/books.xml"));//获取类路径名的文件夹
Element root = d.getRootElement();//获得根元素
List eles = root.elements("book");//获得返回的一个元素的集合
List books = new ArrayList();//新建一个Book集合
for(Element e:eles){//遍历Element集合中所以元素
Book b = new Book();//新建一个Book
b.setId(Integer.parseInt(e.attributeValue("id")));//遍历出来的元素id的值包装拆箱成int类型set给Book
b.setTitle(e.elementText("title"));
b.setAuthor(e.elementText("author"));
b.setPrice(Double.parseDouble(e.elementText("price")));
}
for(Book b:books){
System.out.println(b);
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
java编程思想
Brucre Eckel
89.00
C++编程思想
Brucre Eckel
69.00
headfirst in java
Orelly
79.00