dom4j学习总结(2)

练习:将指定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("------------------");
		}
		
		
	}
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值