• xml字符串转换成Map


    阅读原文作者 : Happy_EveryDay

    
    
    import java.io.StringReader;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.dom4j.Attribute;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    import org.xml.sax.InputSource;
    
    /**
     *
     * @author shenpei
     *
     */
    public class XmlUtil {
    
    	static Map<String, String> xmlMap = new HashMap<String, String>();
    
    	/**
    	 * xml字符串转换成Map 获取标签内属性值和text值
    	 * 
    	 * @param xml
    	 * @return
    	 * @throws Exception
    	 */
    	public static Map<String, String> xmlToMap(String xml) throws Exception {
    		StringReader reader = new StringReader(xml);
    		InputSource source = new InputSource(reader);
    		SAXReader sax = new SAXReader(); // 创建一个SAXReader对象
    		Document document = sax.read(source); // 获取document对象,如果文档无节点,则会抛出Exception提前结束
    		Element root = document.getRootElement(); // 获取根节点
    		Map<String, String> map = XmlUtil.getNodes(root); // 从根节点开始遍历所有节点
    		return map;
    	}
    
    	/**
    	 * 从指定节点开始,递归遍历所有子节点
    	 *
    	 * @author chenleixing
    	 */
    	@SuppressWarnings("unchecked")
    	public static Map<String, String> getNodes(Element node) {
    		xmlMap.put(node.getName().toLowerCase(), node.getTextTrim());
    		List<Attribute> listAttr = node.attributes(); // 当前节点的所有属性的list
    		for (Attribute attr : listAttr) { // 遍历当前节点的所有属性
    			String name = attr.getName(); // 属性名称
    			String value = attr.getValue(); // 属性的值
    			xmlMap.put(name, value.trim());
    		}
    
    // 递归遍历当前节点所有的子节点
    		List<Element> listElement = node.elements(); // 所有一级子节点的list
    		for (Element e : listElement) { // 遍历所有一级子节点
    			XmlUtil.getNodes(e); // 递归
    		}
    		return xmlMap;
    
    	}
    
    }
    
    
  • 相关阅读:
    从应用到平台,云服务架构的演进过程
    从应用到平台,云服务架构的演进过程
    武汉小猫科技-工作总结(1):一图胜万言
    武汉小猫科技-工作总结(1):一图胜万言
    一个App带你学会Retrofit2.0,麻麻再也不用担心我的网络请求了!
    关于创业公司产品开发原则
    关于创业公司产品开发原则
    【Deep learning book】
    【NLP】word2vec
    【python】好书
  • 原文地址:https://www.cnblogs.com/userzf/p/13705888.html
Copyright © 2020-2023  润新知