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);
        }
    
    
    
  • 相关阅读:
    Offer快到碗里来,囊中之物-CAS
    SQL 两表一对多关联,主表某字段保存所有关联的id
    No Feign Client for loadBalancing defined
    Clean Code读书笔记 3--类
    Clean Code读书笔记(2)---函数
    Clean Code读书笔记(1)---有意义的命名
    [CF1354D] Multiset
    [CF1365E] Maximum Subsequence Value
    [CF1358D] The Best Vacation
    [CF463C] Gargari and Bishops
  • 原文地址:https://www.cnblogs.com/QG-whz/p/10000239.html
Copyright © 2011-2022 走看看