现在的位置: 首页 > 综合 > 正文

java解析xml—之—dom4j解析xml文件

2018年03月31日 ⁄ 综合 ⁄ 共 2642字 ⁄ 字号 评论关闭

通过dom4j的api文档来解析xml。dom4j是一套开源的api。实际项目中,往往选择dom4j来作为解析xml的利器。

1、建项目。2、导入dom4j的jar包。点击下载。3、编写代码。

package com.test.service;
import java.io.File;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
	/**   
	* @Description: 解析xml文件
	* @author ****
	* @date 2014年11月7日
	* @version V1.0   
	*/
public class XmlParser1 {
	    @SuppressWarnings("unchecked")
		public static  void readStringXml() {	    	
	        try {
	            // 读取并解析XML文档
	             SAXReader reader = new SAXReader();//SAXReader就是一个管道,用一个流的方式,把xml文件读出来
	             Document doc = reader.read(new File("planeInfo.xml"));
	             // 获取根节点
	            Element rootElt = doc.getRootElement(); 
	            // 拿到根节点的名称
	            System.out.println("根节点:" + rootElt.getName()); 
	            //获取根节点下的子节点flightInfos
	            Iterator iter1 = rootElt.elementIterator("flightInfos"); 
	            // 遍历flightInfos节点
	            while (iter1.hasNext()) {
	                Element recordEle = (Element) iter1.next();
	                Iterator iter2 = recordEle.elementIterator("flightInfo"); 
	                // 遍历flightInfo节点
	                while (iter2.hasNext()) {
	                    Element itemEle = (Element) iter2.next();	           
	                    String airline = itemEle.elementTextTrim("airline");
	                    String airportTax = itemEle.elementTextTrim("airportTax");
	                    String arrival = itemEle.elementTextTrim("arrival");
	                    String arrivalTime = itemEle.elementTextTrim("arrivalTime");

	                    System.out.println("airline:" + airline);
	                    System.out.println("airportTax:" + airportTax);
	                    System.out.println("arrival:" + arrival);
	                    System.out.println("arrivalTime:" + arrivalTime);
	                    //可以把结果放入list列表中
	                    Iterator iter3 = itemEle.elementIterator("cabinInfos");
	                 // 遍历cabinInfos节点
	                    while (iter3.hasNext()) {
							Element itemCabin = (Element) iter3.next();
							Iterator iter4 = itemCabin.elementIterator("cabinInfo");
							// 遍历cabinInfo节点
							while (iter4.hasNext()) {
								Element cabinDetail = (Element) iter4.next();								
								String airportFee = cabinDetail.elementTextTrim("airportFee"); 
								String baseCabin = cabinDetail.elementTextTrim("baseCabin"); 
								String cabinInfo = cabinDetail.elementTextTrim("cabinInfo"); 
								String cabinName = cabinDetail.elementTextTrim("cabinName"); 
								String cost = cabinDetail.elementTextTrim("cost"); 
								String discountRate = cabinDetail.elementTextTrim("discountRate"); 
								String fare = cabinDetail.elementTextTrim("fare"); 
								String oilFee = cabinDetail.elementTextTrim("oilFee"); 
								String policyCode = cabinDetail.elementTextTrim("policyCode"); 
								
								System.out.println("airportFee:" + airportFee);
								System.out.println("baseCabin:" + baseCabin);
								System.out.println("cabinInfo:" + cabinInfo);
								System.out.println("cabinName:" + cabinName);
								System.out.println("cost:" + cost);
								System.out.println("discountRate:" + discountRate);
								System.out.println("fare:" + fare);
								System.out.println("oilFee:" + oilFee);
								System.out.println("policyCode:" + policyCode);
								
							}
						}
	                }
	            }
	        } catch (DocumentException e) {
	            e.printStackTrace();

	        } catch (Exception e) {
	            e.printStackTrace();

	        }
	    }
	    @SuppressWarnings("unchecked")
		public static void main(String[] args) {
	    	readStringXml();
		}
}

抱歉!评论已关闭.