注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

学如逆水行舟,不进则退!

 
 
 

日志

 
 
关于我

我崇拜伟人,但我从不追逐伟人,因为自知没有那么开阔的步伐!

网易考拉推荐

使用dom4j遇到的问题   

2007-07-20 10:40:04|  分类: java2 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在使用dom4j时遇到了一些不符合习惯的处理API,浪费了不少时间。在此进行罗列,以便查阅:

1、xml文件:

<?xml version="1.0" encoding="UTF-8"?>

<document xmlns:xhtml="http://www.w3.org/1999/xhtml">

<properties>

 <property name="document_lang">zh-cn</property>

</properties>

<properties>

 <property name="title">DocNew Test...</property>

</properties>

<newobjects/>

</document>

需求:取出title的值“DocNew Test...”;程序代码:

 String title= "";

 List lists= doc.selectNodes("/document/properties");      //doc为一Document对象

 if(lists != null){

  //for(int i=0; i<lists.size(); i++){

  Element properties = (Element)list.get(list.size()-1);   

  Element property = properties.selectSingNodes("/document/properties/property");

  if(list != null)

   title = property.getText();       

  ------

 }

 System.out.println(title);    

 以上程序输出的将是:zh-cn

       

 String title= "";

 List lists= doc.selectNodes("/document/properties/property");      //doc为一Document对象

 if(lists != null){

  for(int i=0; i<lists.size(); i++){

   Element ele = (Element)list.get(i);

   if(ele.attribute("name").getValue().equals("title"))

    title = ele.getText();

  }

 }

 System.out.println(title);  

 以上程序输出的将是:DocNew Test...

总结:第一段代码Element properties = (Element)list.get(list.size()-1);取的是第二个properties节点,程序到这里还没问题,但执行properties.selectSingNodes("/document/properties/property")与执行doc.selectSingNodes("/document/properties/property")都是从新编历搜索整个稳当, 结果是一样的,获得的都是节点<property name="document_lang">zh-cn</property>。 

  评论这张
 
阅读(88)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017