Published 2022. 7. 5. 10:48

https://github.com/YoungHoonZo/GizmoUtils/blob/master/src/main/java/com/gizmo/utils/XmlUtil.java

 

GitHub - YoungHoonZo/GizmoUtils

Contribute to YoungHoonZo/GizmoUtils development by creating an account on GitHub.

github.com

몇년전에 XML로 변환 하는 로직이 필요해서 찾아서 사용 했었는데, 당시 어디서 찾은건지는 모르겠다..ㅡㅡ;;;

초창기 찾았던 소스에서 버그 몇개 수정 하고 지금까지 계속 업데이트 하면서 사용해온 소스...

각 메소드에 나름 자세하게 주석을 작성 한다고 하기는 했는데...다른 사람들이 봤을때 이해가 잘 되려나 모르겠네...;;;;

전체 소스는 GitHub에 있다...

많은 프로삽질러들의 삽질이 좀 줄어들길 바라며...

GitHub에 가서 TestMain 실행해 보면 샘플 몇개 있습니다...

그리고 좀 내어놓기 부끄러운 코드들이 많이 있습니다...ㅡㅡ;;;

너그러이 양해 부탁 드립니다. 

public class XmlUtil {

    public static final int BUFF_SIZE = 2048;

    /**
     * ArrayList를 XML로 만든다.
     * @param list List 데이터.
     */
    public static String doListToXML(ArrayList<Map<String, Object>> list) throws InvocationTargetException, IllegalAccessException, InstantiationException, NoSuchMethodException {

        XmlWrapper wrapper = new XmlWrapper();
        String xmlStr = "<ROOT>\n";
        xmlStr += wrapper.format(list, null);
        xmlStr += "</ROOT>\n";

        return xmlStr;
    }

    /**
     * Vo 또는 Dto List를 XML로 만든다.
     * @param list List 데이터.
     */
    public static String doListToXML(List<?> list) throws InvocationTargetException, IllegalAccessException, InstantiationException, NoSuchMethodException {

        XmlWrapper wrapper = new XmlWrapper();
        String xmlStr = "<ROOT>\n";
        xmlStr += wrapper.format(ConvertUtils.convertToMaps(list), null);
        xmlStr += "</ROOT>\n";

        return xmlStr;
    }

    /**
     * Vo 또는 Dto List를 XML로 만든다.
     * @param list Vo 또는 Dto의 List 데이터
     * @param exceptColumn 리스트 데이터중 제외 하고자 하는 컬럼이 있을때 해당 컬럼의 key값을 ArrayList로 넘긴다.
     * @return
     */
    public static String doListToXML(List<?> list, ArrayList<String> exceptColumn) throws InvocationTargetException, IllegalAccessException, InstantiationException, NoSuchMethodException {
        XmlWrapper wrapper = new XmlWrapper();

        String xmlStr = "<ROOT>\n";
        xmlStr += wrapper.format(ConvertUtils.convertToMaps(list), exceptColumn);
        xmlStr += "</ROOT>\n";

        return xmlStr;
    }

    /**
     * Value Object(VO) 또는 Data Object(Dto)를 Object로 받아서 xml로 변환 한다.
     * @param obj 변환 하고자 하는 Vo 또는 Dto
     * @return
     */
    public static String doObjectToXML(Object obj){
        XmlWrapper wrapper = new XmlWrapper();

        String xmlStr = "<ROOT>\n";
        xmlStr += wrapper.format(ConvertUtils.convertToMap(obj), null);
        xmlStr += "</ROOT>\n";

        return xmlStr;
    }

    /**
     * Map 데이터를 xml로 변환한다.
     * @param map 데이터
     * @return
     */
    public static String doMapToXML(Map<String, Object> map){
        XmlWrapper wrapper = new XmlWrapper();

        String xmlStr = "<ROOT>\n";
        xmlStr += wrapper.format(map, null);
        xmlStr += "</ROOT>\n";

        return xmlStr;
    }

    /**
     * Map 데이터를 xml로 변환한다.
     * @param map 데이터
     * @param exceptColumn 예외처리할 컬럼.
     * @return
     */
    public static String doMapToXML(Map<String, Object> map, ArrayList<String> exceptColumn){
        XmlWrapper wrapper = new XmlWrapper();

        String xmlStr = "<ROOT>\n";
        xmlStr += wrapper.format(map, exceptColumn);
        xmlStr += "</ROOT>\n";

        return xmlStr;
    }
}
복사했습니다!