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