派生自 projectDept/qhighschool

胡仁荣
2023-08-04 2174b22bbbb45284765a23b8189df59583c65d29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package com.qxueyou.scc.base.util;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
 
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
 
public final class XmlUtils {
    
    private static Logger log = LogManager.getLogger(XmlUtils.class);
 
    public static Map<String,String> parseXML(String xml){
        
        Map<String,String> result = new HashMap<String,String>(10);
        
        try {
 
            Document document = DocumentHelper.parseText(xml);
 
            Element root = document.getRootElement();
            
            Element child=null;    
            for(Object element:root.elements()){
                child = (Element) element;
                
                result.put(child.getName(), child.getText());
                
            }
            
        } catch (DocumentException e) {
            log.error(e,e);
        }
        return result;
    }
    
    public static String toXml(Map<String,String> map,String rootName){
        
        StringBuilder sb = new StringBuilder(300);
        
        sb.append("<").append(rootName).append(">");
        
        for(String key:map.keySet()){
            sb.append("<").append(key).append(">");    
            sb.append("<![CDATA[").append(map.get(key)).append("]]>");
            sb.append("</").append(key).append(">");
        }
        
        sb.append("</").append(rootName).append(">");
        
        return sb.toString();
        
    }
    
    public static Map<String,Object> parseMutiXML(String xml){
        
        Map<String,Object> result = new HashMap<String,Object>(10);
        
        try {
 
            Document document = DocumentHelper.parseText(xml);
 
            Element root = document.getRootElement();
            
            Element child=null;    
            for(Object element:root.elements()){
                child = (Element) element;
                
                if(child.getName().contains("list")){// lst组合
                    result.put(child.getName(), getXMLList(child));
                }else{
                    result.put(child.getName(), child.getText());
                }
            }
            
        } catch (DocumentException e) {
            log.error(e,e);
        }
        return result;
    }
    
    @SuppressWarnings({ "rawtypes" })
    public static List<String> getXMLList(Element element) {
            
            List<String> litObject = new ArrayList<String>();
            Iterator objElementIterator = element.elementIterator();
            while (objElementIterator.hasNext()) {
                 Element objElement = (Element) objElementIterator.next();
                 litObject.add(objElement.getText());
                
            }
            return litObject;
        }
}