dom4j 总结

dom4j 总结 (一) xml文件的解析

 

引入dom4j 所需要的jar包
 * dom4j-****.jar
 * 如果要用到XPATH 还需要引入jaxen-****.jar

下面我们开始解析XML文件!
 
 * xml文件内容如下:
   

 

 * //打开数据输入流
   File file = new File("D://单指标1.xml");
          FileInputStream fis = new FileInputStream(file);

   //读取输入流
   SAXReader reader = new SAXReader();
   Document document = reader.read(fis);
  
   //将xml的全部内容输出!
   logger.info(document.asXML());
  
 * 这样我们得到了这个xml的document对象
 
  
 * //得到元素
   Element root = document.getRootElement()
 
   //遍历输出根元素的子元素
   for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
             Element element = (Element) i.next();
             logger.info(element.getName());
         }
   //如上例我们将输出Threshold和warntemplate

 * 得到元素的属性值
   Element Threshold = root.element("Threshold");
   
   for ( Iterator i = Threshold.attributeIterator(); i.hasNext(); ) {
             Attribute attribute = (Attribute) i.next();
             logger.info("attribute.getName()" + attribute.getName().trim());//打印出属性的名称
             logger.info("attribute.getText()" + attribute.getText().trim());//打印出属性的值
   }
 * 通过XPATH检索xml
 
     List rules = root.selectNodes("//rule");
   
     for(int i=0;i<rules.size();i++){
    Element rule = (Element)rules.get(i);
    for(Iterator iter = rule.attributeIterator(); iter.hasNext();){
     Attribute attribute = (Attribute) iter.next();
              logger.info("attribute.getName()" + attribute.getName().trim());//得到属性名
              logger.info("attribute.getText()" + attribute.getText().trim());//得到属性值
    }
    logger.info("---------------------------------");
   }

 * 将rule的所有属性打印出来!

 * 如果想得到Node中的数据 如 <rule>123</rule>中的值。
   可以将root.selectNodes("//rule");得到的List中的数据强制转成Node类型;
   并调用Node的getName和getText方法得到
  
   List rules = root.selectNodes("//rule");
   
     for(int i=0;i<rules.size();i++){
    Node rule = (Node)rules.get(i);
                  logger.info("rule.getName()" + rule.getName().trim());//得到节点名
                  logger.info("rule.getText()" + rule.getText().trim());//得到节点值
    logger.info("---------------------------------");
   }
  
 
 * Element和Node的区别
  元素(Element)和结点(Node)的区别,必须是含有完整信息的结点才是一个元素,例如<div>...</div>。但是一个结点不一定是一 

  个元素,而一个元素一定是一个结点。
    Attr 接口表示 Element 对象中的属性。通常该属性所允许的值定义在与文档相关的模式中。
 
 * XPATH的语法
   请参见http://www.w3school.com.cn/xpath/xpath_syntax.asp

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值