Java 解析xml文件

Funtion.xml

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


<!--
应对需求变更:
    原数据a,b,c,d,e,f,g,h......
        数据库中的存储结构,即组成权限的字符串String popedom = abcdefth......
        页面控制popedom.contains("a") 是否具有权限
    
    现数据aa,ab,ac,ad...az,ba,bb,bc...bz,ca......
        数据库中存储结构,即组成权限的字符串String popedom = aa@ab@ac@ad......
        页面控制 popedom.contains("aa") 是否具有权限
            或者String [] dom = popedom.split("@");
              dom[i].equal("aa"),用于判断是否具有权限
 -->
    

<ElecData>

  <Function>
     <FunctionCode>a</FunctionCode>
     <FunctionName>仪器设备管理</FunctionName>
     <ParentCode>device</ParentCode>
     <ParentName>技术设施维护管理</ParentName>
  </Function>    
  <Function>
     <FunctionCode>b</FunctionCode>
     <FunctionName>设备校准检修</FunctionName>
     <ParentCode>device</ParentCode>
     <ParentName>技术设施维护管理</ParentName>
  </Function>  
  <Function>
     <FunctionCode>c</FunctionCode>
     <FunctionName>设备购置计划</FunctionName>
     <ParentCode>device</ParentCode>
     <ParentName>技术设施维护管理</ParentName>
  </Function>

  <Function>
     <FunctionCode>d</FunctionCode>
     <FunctionName>资料图纸管理</FunctionName>
     <ParentCode>informationAndPaper</ParentCode>
     <ParentName>技术资料图纸管理</ParentName>
  </Function>

  <Function>
     <FunctionCode>e</FunctionCode>
     <FunctionName>站点基本信息</FunctionName>
     <ParentCode>station</ParentCode>
     <ParentName>站点设备运行管理</ParentName>
  </Function>
  <Function>
     <FunctionCode>f</FunctionCode>
     <FunctionName>运行情况</FunctionName>
     <ParentCode>station</ParentCode>
     <ParentName>站点设备运行管理</ParentName>
  </Function>  
  <Function>
     <FunctionCode>g</FunctionCode>
     <FunctionName>维护情况</FunctionName>
     <ParentCode>station</ParentCode>
     <ParentName>站点设备运行管理</ParentName>
  </Function>
 
  <Function>
     <FunctionCode>h</FunctionCode>
     <FunctionName>监测台建筑管理</FunctionName>
     <ParentCode>jct</ParentCode>
     <ParentName>监测台建筑管理</ParentName>
  </Function>
     
  <Function>
     <FunctionCode>i</FunctionCode>
     <FunctionName>角色管理</FunctionName>
     <ParentCode>sysmng</ParentCode>
     <ParentName>系统管理</ParentName>
  </Function>
  <Function>
     <FunctionCode>j</FunctionCode>
     <FunctionName>待办事宜</FunctionName>
     <ParentCode>sysmng</ParentCode>
     <ParentName>系统管理</ParentName>
  </Function>      
  <Function>
     <FunctionCode>k</FunctionCode>
     <FunctionName>数据字典维护</FunctionName>
     <ParentCode>sysmng</ParentCode>
     <ParentName>系统管理</ParentName>
  </Function>
       
<Function>
     <FunctionCode>l</FunctionCode>
     <FunctionName>新增功能</FunctionName>
     <ParentCode>operate</ParentCode>
     <ParentName>操作权限分配</ParentName>
  </Function>
  <Function>
     <FunctionCode>m</FunctionCode>
     <FunctionName>删除功能</FunctionName>
     <ParentCode>operate</ParentCode>
     <ParentName>操作权限分配</ParentName>
  </Function>  
  <Function>
     <FunctionCode>n</FunctionCode>
     <FunctionName>编辑功能</FunctionName>
     <ParentCode>operate</ParentCode>
     <ParentName>操作权限分配</ParentName>
  </Function>

</ElecData>


用dom4j解析

XmlObject为自己创建的实体类

public List<XmlObject> readXml() {
        
        ServletContext servletContext = ServletActionContext.getServletContext();
        String realPath = servletContext.getRealPath("/WEB-INF/classes/Function.xml");
        File f = new File(realPath);
        List<XmlObject> xmlList = new ArrayList<XmlObject>();
        //使用dom4j读取配置文件
        try {
            SAXReader reader = new SAXReader();
            Document document = reader.read(f);
            Element element = document.getRootElement();
            XmlObject xmlObject = null;
            /**
             * Function:对应配置文件中的Function元素节点
             * FunctionCode:对应配置文件中Function元素节点下的FunctionCode元素节点
             * FunctionName:对应配置文件中Function元素节点下的FunctionName元素节点
             * ParentCode:对应配置文件中Function元素节点下的ParentCode元素节点
             * ParentName:对应配置文件中Function元素节点下的ParentName元素节点
             */
            for(Iterator<Element> iter = element.elementIterator("Function");iter.hasNext();){
                Element xmlElement = iter.next();
                xmlObject = new XmlObject();
                xmlObject.setCode(xmlElement.elementText("FunctionCode"));
                xmlObject.setName(xmlElement.elementText("FunctionName"));
                xmlObject.setParentCode(xmlElement.elementText("ParentCode"));
                xmlObject.setParentName(xmlElement.elementText("ParentName"));
                xmlList.add(xmlObject);
            }
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        return xmlList;
    }


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值