利用dom4j学习xml(三) 修改子节点的属性值

Document document;
  SAXReader reader = new SAXReader();
  String path=ServletActionContext.getRequest().getRealPath("/xml");
  try {
    document=reader.read(path+"/admin/名称.xml");
        Element root = document.getRootElement(); //得到根节点目录  
   
        Element titleElement = null;
        //获得根节点的子节点
        for (Iterator iterator = root.elementIterator(); iterator.hasNext();) {
   Element e = (Element) iterator.next();
   for (Iterator iter = e.attributeIterator(); iter.hasNext();) {
    Attribute attr = (Attribute) iter.next();
   }
   if(e.getName().equals("businesses")){
   //获得当前节点的子节点 
   for(Iterator iter=e.elementIterator();iter.hasNext();){
    Element attribute=(Element)iter.next();
    for(Iterator itera=attribute.attributeIterator();itera.hasNext();){
     Attribute attri=(Attribute)itera.next();
     if(attri.getName().equals("name")){//获得属性name
      if(attribute.attributeValue(attri.getName()).equals("$(appdir)//vnc//winvnc4.exe")){
       //重新组合parameter参数
       String ip=business.getParameter();
       String beforeIP=business.getBeforeIP();
       String parameter=beforeIP+ip;//将parameter属性值重新组合
       attribute.attribute("parameter").setText(parameter);
       attribute.attribute("active").setText("2");
      }
     }
   }
   }
   }
  }
        //获得根节点的ver属性值,并修改其属性值
        for (Iterator iterator1 = root.attributeIterator(); iterator1.hasNext();) {
   Attribute attri = (Attribute) iterator1.next();
   if(attri.getName().equals("ver")){
    root.attribute("ver").setText(version);
   }
  }
        OutputFormat format = OutputFormat.createPrettyPrint();
          XMLWriter writer2 = new XMLWriter(new FileWriter(new File(
            path+"/admin/名称.xml")), format);//重新写回到原来的xml文件中
   writer2.write(document);
      writer2.close();
  } catch (IOException e) {
   e.printStackTrace();
  } catch (DocumentException e1) {
   e1.printStackTrace();
  }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值