java解析xml文件dom4j,java解析xml---之---dom4j解析xml文件

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

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值