java解析xml技术(二)

2 篇文章 0 订阅

在上一篇java解析xml技术(一)中,我已经讲完jdk中自带解析xml的两种方式dom和sax,现在我继续讲一讲另一个java平台下的xml解析工具dom4j。

dom4j就是dom for java的缩写,它完全支持dom、sax、jaxp机制。它处理xml的方式如下:

List itemList=list.elements();
for(int i=0;i<itemList.size();i++){
      Element ele=(Element)itemList.get(i);
      System.out.println(ele.getText());
}
从代码中可以看出,dom4j解析与dom解析的思想基本相似,但dom4j的处理方式更简单。

除此之外,dom4j还有两个优势:

  1.面向接口编程。dom4j采用面向接口编程的方式来处理xml文档解析,程序主要面向document、element等接口编程,至于这些接口的底层实现,程序员无须关心。

2.支持多种解析机制。这个是dom4j最大的优势,因为它除了支持基本的dom和sax解析机制,还有xml pull parser 3.x来解析xml文档。程序员可以根据自己需要选择适合的机制,但是无论哪一种机制,都是把xml文档转化为dom4j树。注意,它能够用sax机制构建一颗dom4j树,这样就可以解决sax最大的缺点,不能重复访问。但现在我介绍的是他的第三种机制xpp3Reader。

1.把dom4j.jar和xpp3.jar引用作为项目的库。

2.创建XPP3Reader。

XPP3Reader reader = new XPP3Reader();
3.获取xml的根节点。

Document doc = reader.read(new FileInputStream(new File(filename)));
Element root = doc.getRootElement();
4.进行xml解析。

parse(root);
public void parse(Element root){
      List el=root.elements();//获得当前节点的所有子节点
      //遍历每个子节点
      for(Object o:el)
      {
              Element element=(Element)o;
		//如果该节点含有文本数据,也就是叶节点		
		if(element.isTextOnly())
             {
		List attList=element.attributes();//获得所有属性
		for(Object e:attList){
			System.out.println(element.getQName().getName()+"元素的"+((Attribute)e).getQName().getName()+"属性值为:"+((Attribute)e).getValue());
		}
		 //输出子节点的文本数据
             System.out.println(element.getText());
	}
	else
		parse(element);
       }
}
看完代码是否对dom4j的简单而心动呢,心动不如行动,赶快下载试试吧。 http://download.csdn.net/detail/xanxus46/4444906


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值