zoukankan      html  css  js  c++  java
  • [ java 工具类] xml字符串解析成Map(DOM解析)

    package com.tencent.jungle.wechat.util;
    
    import com.google.inject.Singleton;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.InputSource;
    
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import java.io.StringReader;
    import java.util.HashMap;
    import java.util.Map;
    
    @Singleton
    public class XmlUtils {
        public static Document parseXmlString(String xmlStr){
    
            try{
                InputSource is = new InputSource(new StringReader(xmlStr));
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                DocumentBuilder builder=factory.newDocumentBuilder();
                Document doc = builder.parse(is);
                return doc;
            }catch(Exception e){
                e.printStackTrace();
            }
            return null;
        }
    
        public static Map<String,Object> getXmlBodyContext(String bodyXml){
    
            Map<String,Object> dataMap = new HashMap<String,Object>();
    
            Document doc = parseXmlString(bodyXml);
            if(null != doc){
                NodeList rootNode = doc.getElementsByTagName("xml");
                if(rootNode != null){
    
                    Node root = rootNode.item(0);
                    NodeList nodes = root.getChildNodes();
                    for(int i = 0;i < nodes.getLength(); i++){
                        Node node = nodes.item(i);
                        dataMap.put(node.getNodeName(), node.getTextContent());
                    }
                }
            }
            return dataMap;
        }
    
    }
    
    
        public static void main(String[] args) {
            String xmlStr = "<xml><AppId></AppId><CreateTime>1413192605</CreateTime><InfoType></InfoType><ComponentVerifyTicket></ComponentVerifyTicket></xml>";
            Map<String, Object> map = XmlUtils.getXmlBodyContext(xmlStr);
            System.out.println(map);
        }
    
    
    
  • 相关阅读:
    判断java中两个对象是否相等
    面试题记录
    springboot集成redis操作
    Java 之Integer相等比较
    CSS+DIV网页样式与布局:第二章:CSS的基本语法
    JSP标签:jsp内置标签、jstl标签、自定义标签
    jsp jstl标签库 el表达式
    mysql数据库修改字段类型
    读CSS DIV网页样式与布局心得体会
    Absolute(绝对定位)与relative(相对定位)的图文讲解
  • 原文地址:https://www.cnblogs.com/QG-whz/p/10000239.html
Copyright © 2011-2022 走看看