通过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();
}
}