https://github.com/YoungHoonZo/GizmoUtils/blob/master/src/main/java/com/gizmo/utils/XmlUtil.java
몇년전에 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;
}
}