前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java解析xml技术(二)

java解析xml技术(二)

作者头像
forrestlin
发布2018-05-23 17:32:13
7420
发布2018-05-23 17:32:13
举报
文章被收录于专栏:蜉蝣禅修之道蜉蝣禅修之道

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

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

代码语言:javascript
复制
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。

代码语言:javascript
复制
XPP3Reader reader = new XPP3Reader();

3.获取xml的根节点。

代码语言:javascript
复制
Document doc = reader.read(new FileInputStream(new File(filename)));
Element root = doc.getRootElement();

4.进行xml解析。

代码语言:javascript
复制
parse(root);
代码语言:javascript
复制
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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012年07月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档