zoukankan      html  css  js  c++  java
  • 【dom4j】解析xml为map

    dom4j解析xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <workflows> 
      <queryRequest> 
        <branchId>88037062</branchId>  
        <merSysId>00000317</merSysId>  
        <queryNo>948983692</queryNo>  
        <billType>00</billType>  
        <merBillStat>00</merBillStat>  
        <billDate>201610</billDate>  
        <individualArea>948983692</individualArea> 
      </queryRequest> 
    </workflows>

     解析代码:

    private static Map<String,String> xml2Map(String xml) {
            Map<String, String> map = new HashMap<String, String>();
            try {
                Document doc = DocumentHelper.parseText(xml);//将xml转为dom对象
                Element root = doc.getRootElement();//获取根节点
                Element element = root.element("queryRequest");//获取名称为queryRequest的子节点
                List<Element> elements = element.elements();//获取这个子节点里面的所有子元素,也可以element.elements("userList")指定获取子元素
                 for (Object obj : elements) {  //遍历子元素
                      element = (Element) obj;  
                      map.put(element.getName(), element.getTextTrim());/getName
                     System.out.println(element.getName()+"--"+element.getTextTrim());
                 } 
            } catch (Exception e) {
                e.printStackTrace();
            }
            return map;
        }

    以下这种写法也常见

     public  Boolean readStringXml(String xml) {  
            Document doc = null;  
            try {  
                doc = DocumentHelper.parseText(xml); // 将字符串转为XML  
                Element rootElt = doc.getRootElement(); // 获取根节点  
                Iterator<?> iter = rootElt.elementIterator("is_success"); // 获取根节点下的子节点head  
                // 遍历head节点  
                while (iter.hasNext()) {  
                    Element recordEle = (Element) iter.next();  
                    return recordEle.getText().equals("T")?true:false;
                }  
            } catch (DocumentException e) {  
                e.printStackTrace();  
            } catch (Exception e) {  
                e.printStackTrace();  
            }
            return null;
        }  

    xml转为map

  • 相关阅读:
    Python学习1——语法
    Java正则表达式:Pattern类和Matcher类
    BufferedReader 是缓冲字符输入流
    asm 01 开发环境
    vim一个不使用插件的基本配置
    sublime
    一些东西
    jshint 一些选项(转载)
    prototype 和__proto__
    vim 基本使用
  • 原文地址:https://www.cnblogs.com/gyjx2016/p/6059898.html
Copyright © 2011-2022 走看看