您的位置:首页 > 其它

dom4j学习总结(2)

2013-05-31 16:15 288 查看
练习:将指定XML文件中的所有元素解析出,并存放在集合中,按照一定的顺序进行排序。

(1)car.xml文件

(2)解析所有的car元素,放入集合

(3)按照price降序后输出

car.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<carlist>
<car>
<brand produceTime="2010">Audi</brand>
<place>Beijing</place>
<price>360000</price>
</car>
<car>
<brand produceTime="2011">toyota</brand>
<place>Guangzhou</place>
<price>3000000</price>
</car>
</carlist>


(1)编写car类,为实现排序,需实现Comparable接口,并覆写compareTo()方法

package web.java.xml.dom4j;

public class Car implements Comparable<Car> {
private String brand;
private String place;
private int price;

public String getBrand() {
return brand;
}
public String getPlace() {
return place;
}
public int getPrice() {
return price;
}
public void setBrand(String brand) {
this.brand = brand;
}
public void setPlace(String place) {
this.place = place;
}
public void setPrice(int price) {
this.price = price;
}

/*
* 为实现排序效果,要继承Comparable接口,并覆写compareTo()方法
*/
@Override
public int compareTo(Car car) {
if(this.price < car.getPrice()){
return 1;
}else if(this.price > car.getPrice()){
return -1;
}else{
return 0;
}
}

}


(2)编写测试代码

package web.java.xml.dom4j;

import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
* 将car.xml文件中的所有car元素解析出存入集合,并按照单价对集合中的元素降序后输出
* @author well
*
*/
public class Demo3 {
public static void main(String[] args) throws Exception {
File file = new File("src/web/java/xml/dom4j/car.xml");
SAXReader saxReader = new SAXReader();
Document doc = saxReader.read(file);
List<Element> elementList = doc.getRootElement().elements();
List<Car> carList = new ArrayList<Car>();
for (Element e : elementList) {
Car car = new Car();
car.setBrand(e.elementText("brand"));
car.setPlace(e.elementText("place"));
car.setPrice(Integer.parseInt(e.elementText("price")));
carList.add(car);
}
Collections.sort(carList);

for (Car car : carList) {
System.out.println("brand:"+car.getBrand());
System.out.println("place:"+car.getPlace());
System.out.println("price:"+car.getPrice());
System.out.println("------------------");
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: