zoukankan      html  css  js  c++  java
  • 使用dom4j中SAXReader解析xml数据

     1  public ApiConfig(String configFilePath) throws DocumentException{
     2         SAXReader reader = new SAXReader();
     3         File xml=new File(configFilePath);
     4         Document document = reader.read(xml);
     5         //获取根元素
     6         Element rootElement = document.getRootElement();
     7         
     8         //将根元素下"rootUrl"元素的值去除空格后,赋值给一个String
     9         rootUrl = rootElement.element("rootUrl").getTextTrim();
    10         //注解:取消警告,将根元素下获取到的所有"params"的子元素赋值到List中
    11         @SuppressWarnings("unchecked") 
    12         List<Element> paramElements = rootElement.element("params").elements(
    13                 "param");
    14         //对List进行循环,将获取到的值put到HashMap中
    15         paramElements.forEach((ele)->{
    16             params.put(ele.attributeValue("name").trim(),
    17                     ele.attributeValue("value").trim());
    18         });
    19         @SuppressWarnings("unchecked")
    20         List<Element> headerElements = rootElement.element("headers").elements(
    21                 "header");
    22         headerElements.forEach((ele)->{
    23             headers.put(ele.attributeValue("name").trim(),
    24                     ele.attributeValue("value").trim());
    25         });
    26         Element projectEle = rootElement.element("project_name");
    27         if(projectEle!=null){
    28             ReportUtil.setReportName(projectEle.getTextTrim());
    29         }
    30     }        
    31 
    32   private Map<String,String> params = new HashMap<String, String>();
    33     
    34     private Map<String,String> headers = new HashMap<String, String>();

    代码解析:
    1、读取xml数据
    SAXReader可以通过多种方式读取xml数据,并返回Document格式的对象。通过查看源码,可以看出read()方法接收File,InputStream和URL等格式的参数来读取相应的xml数据。读取xml文档和xml格式的字符串两种方式。当然,字符串要根据相应的编码转成输入流才能被SAXReader读取。
    2、解析xml数据
    读取到Document对象后,我们使用getRootElement()方法获取根元素,返回的是一个Element对象。
    3、获取子元素数据
    获取根元素后,便可以一层一层的去获取他的子元素信息。如果知道子元素的标签名称,便可以直接调用element("name")方法获取该子元素。如果不知道子元素的名称,或者想直接获取该元素下的全部子元素,可以调用elements()方法获取一个包括全部元素的list,然后进行下一步的处理。
    4、输出元素信息
    调用getName()方法获取当前元素的元素名,attributeValue()获取属性名。如果当前元素没有子元素,则调用getText()方法获取元素值。

  • 相关阅读:
    centos 配置puTTY rsa自动登录
    Linux LVM 简单操作
    linux 系统下有sda和hda的硬件设备分别代表什么意思
    Centos 安装Sublime text 3
    编译安装MySQL-5.7.13
    药品查询网的数据库
    获得Android设备的唯一序列号
    Android中设置TextView的颜色setTextColor
    介绍几款网页数据抓取软件 分类: 业余 2015-08-07 18:09 5人阅读 评论(0) 收藏
    网上处方药物手册Rxlist 及其药学信息资源 分类: 业余 2015-08-07 14:16 8人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/shadow-yin/p/9840221.html
Copyright © 2011-2022 走看看