JAVA實現map集合轉Xml格式


 

 

import java.util.Iterator;
import java.util.SortedMap;
import java.util.TreeMap;

public class MainTest {

    /**
     * map轉xml格式
     * @param sortedMap
     * @return
     */
    public static String mapToXml(SortedMap<Object, Object> sortedMap) {
        StringBuffer sb = new StringBuffer("<Request>");
        Iterator iterator = sortedMap.keySet().iterator();
        while (iterator.hasNext()) {
            Object key = (String) iterator.next();
            Object value = sortedMap.get(key);
            sb.append("<" + key + ">");
            sb.append(value);
            sb.append("</" + key + ">");
        }
        sb.append("</Request>");
        return sb.toString();
    }


    public static void main(String[] args) {
        SortedMap<Object, Object> paramMap = new TreeMap<Object, Object>();
        paramMap.put("code1", 111);
        paramMap.put("code2", 222);
        paramMap.put("code3", 333);
        String soapXML =mapToXml(paramMap);
        System.out.println(soapXML);
    }
}

 

輸出

<Request><code1>111</code1><code2>222</code2><code3>333</code3></Request>

 

如果是多結構的話,可以使用下方這個

/**
     * map轉xml格式(多結構拼接生成)
     * @param sortedMap
     * @return
     */
    public static String mapToSignXml(SortedMap<Object, Object> sortedMap) {
        StringBuilder builder = new StringBuilder();
        Iterator iterator = sortedMap.keySet().iterator();
        while (iterator.hasNext()) {

            Object key = (String) iterator.next();
            Object value = sortedMap.get(key);
            builder.append("<" + key + ">");
            if (value instanceof SortedMap) {
                SortedMap sortedMap1 = (SortedMap) value;
                builder.append(mapToSignXml(sortedMap1));
            } else {
                builder.append(value);
            }
            builder.append("</" + key + ">");

        }
        return builder.toString();
    }

    public static void main(String[] args) {

        SortedMap<Object, Object> requestMap = new TreeMap<Object, Object>();

        SortedMap<Object, Object> paramMap = new TreeMap<Object, Object>();
        paramMap.put("requid", "111");

        SortedMap<Object, Object> retrieveargsMap = new TreeMap<Object, Object>();

        retrieveargsMap.put("code1", 111);
        retrieveargsMap.put("code2", 222);

        SortedMap<Object, Object> paramMap1 = new TreeMap<Object, Object>();
        paramMap1.put("child1", "1111");
        paramMap1.put("child2", "2222");
        paramMap1.put("child3", "3333");
        retrieveargsMap.put("code3", paramMap1);

        paramMap.put("retriev", retrieveargsMap);

        requestMap.put("request",paramMap);

        String soapXML = mapToSignXml(requestMap);
        System.out.println(soapXML);

    }

 

生成結果

<request>
    <requid>111</requid>
    <retriev>
        <code1>111</code1>
        <code2>222</code2>
        <code3>
            <child1>1111</child1>
            <child2>2222</child2>
            <child3>3333</child3>
        </code3>
    </retriev>
</request>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM