[XML] XML ÆĽ̰ú VO ¸ÅÇνÃÅ°±â
µ¨ÆÄÀ̸¦ ÅëÇؼ ³Ñ¾î¿Â XML µ¥ÀÌÅ͸¦ multipart·Î ¹Þ¾Æ¼ ÀÏ°ý µî·ÏÇÒ¶§ ó¸®ÇÏ´Â ³»¿ëÀÔ´Ï´Ù.
ÀÌ·¸°Ô ¹Þ¾Æ Àӽà Æú´õ¿¡ ÀúÀåÇسõ½À´Ï´Ù.
MultipartRequest file =
new MultipartRequest(request, savePath, 1000*1024*1024, "utf-8");
Àӽà Æú´õ¿¡ ÀÖ´Â ¾ÖµéÀº crontab ½á¼ ÁÖ±âÀûÀ¸·Î Áö¿öÁö°í Àֳ׿ä. ¤»
XML ÆÄÀÏÀ» °®´Ù°¡ ³Ñ°Ü¼ ±×¸®°í °¡Áö°í ¿Í¼ ÆĽÌÇÕ´Ï´Ù.
public Object[] drwngXmlParser(String fileName) {
Object[] object = new Object[3];
ArrayList<HashMap<String, String>> infoList = new ArrayList<HashMap<String, String>>();
try {
SAXBuilder sber = new SAXBuilder();
File xmlFileNm = new File(savePath+"/"+fileName);
Document doc = sber.build(xmlFileNm);
Element root = doc.getRootElement();
List<Element> info = root.getChildren();
//·çÆ® ¿¤¸®¸Õµå ¾ò¾î¿È
for(int i=0; i<info.size(); i++){
//·çÆ® ÇÏÀ§ ¿¤¸®¸ÕÆ®°¡ °³¼ö¸¸Å ¹Ýº¹
if(hasChildren(info.get(i))) {
//hasChildrenÀ» ÅëÇØ ¹Ýº¹ÁßÀÎ Element°¡ ÀÚ½ÄÀ» °¡Á³´ÂÁö ¿©ºÎ¸¦ ÆÇ´Ü
List<Element> drwng = info.get(i).getChildren();
//ÀÖ´Ù¸é ÇØ´ç ElementÀÇ Àڽijëµå ¸®½ºÆ®¸¦ °¡Á®¿È
HashMap<String, String> infoMap = new HashMap<String, String>();
//text µ¥ÀÌÅ͸¦ ´ãÀ» map »ý¼º
for(int j=0; j<drwng.size(); j++){
//ÀÌ ÇÏÀ§ elementÀÇ °³¼ö¸¸Å ¹Ýº¹ÇÔ
if(hasChildren(drwng.get(j))) {
//hasChildrenÀ» ÅëÇØ ÇÏÀ§ ³ëµå°¡ ÀÖ´ÂÁö ÆľÇ
List<Element> docInfo = drwng.get(j).getChildren();
//ÀÖ´Ù¸é ÇØ´ç elementÀÇ Àڽijëµå ¸®½ºÆ®¸¦ °¡Á®¿È
for(int l=0; l<docInfo.size(); l++) {
//ÇÏÀ§ ³ëµåµéÀ» ¹Ýº¹ÇÔ
infoMap.put(docInfo.get(l).getName().replace("-", "").toUpperCase(),
docInfo.get(l).getText());
//³ëµåÀÇ text¸¦ map¿¡ ´ãÀ½
}
} else {
infoMap.put(drwng.get(j).getName().replace("-", "").toUpperCase(),
drwng.get(j).getText());
//ÇÏÀ§ ³ëµå°¡ ¾ø´Ù¸é ÇöÀç ³ëµåÀÇ text Á¤º¸¸¦ ´ãÀ½
}
}
infoList.add(infoMap);
//mapÀ» list¿¡ ´ãÀ½(<drwng> Çϳª°¡ add µÊ)
} else {
object[i] = info.get(i).getText();
//udt_cnt¿Í dvsn_cd¸¦ object¿¡ ´ãÀ½
}
}
object[2] = infoList;
//drwng List¸¦ object2¿¡ ´ã´Â´Ù.
} catch(Exception e) {
e.getStackTrace();
}
return object;
}
ÀÌ·¸°Ô Çؼ ÆĽÌÇÑ °á°ú´Â ¸®½ºÆ®¿¡ ´ã¾Æ¼ return ÇÏ°Ô µË´Ï´Ù.
À̶§ ±Ã±ÝÇß´ø°Ô ÀÚ¹Ù ¸®Ç÷º¼ÇÀ̾ú´Âµ¥¿ä. ¸Ó ¾îµð´Ù°¡ ¾î¶»°Ô ½á¾ß Àß¾²´ÂÁöµµ ¸ð¸£°Ú°í Çؼ ±×³É VO¸¦ ¸ÅÇνÃÅ°´Âµ¥ ½è½À´Ï´Ù. VO´Â ¹Ù²ð¼öµµ ÀÖÀ¸´Ï±î¿ä ~ ±×¸®°í xml element°ªÀ̶û¸¸ ¸ÂÃçÁÖ¸é µÇ´Ï±î
public ArrayList<DrwngAllInfo> domainMapping(ArrayList<HashMap<String, String>> mapList) throws Exception {
Class<?> c = Class.forName("com.ese.domain.DrwngAllInfo");
Method[] methods = c.getMethods();
ArrayList<DrwngAllInfo> drwngList = new ArrayList<DrwngAllInfo>();
try {
for(HashMap<String, String> list : mapList) {
DrwngAllInfo target = (DrwngAllInfo) c.newInstance();
Iterator iter = list.keySet().iterator();
while(iter.hasNext()) {
String key = (String) iter.next();
for(int i=0; i<methods.length; i++) {
if(methods[i].getName().startsWith("set")) {
if(methods[i].getName().replace("set", "").toUpperCase().equals(key.replace("_", "").toUpperCase())){
String colunm = methods[i].getName().replace("set", "").toUpperCase();
Class<?>[] types = methods[i].getParameterTypes();
Method m = c.getMethod(methods[i].getName(), types[0]);
if(types[0].toString().equals("int"))
m.invoke(target, Integer.parseInt(list.get(key)));
else
m.invoke(target, list.get(key));
}
}
}
}
drwngList.add(target);
}
} catch(Exception e) {
throw e;
}
return drwngList;
}
¸¶Áö¸·¿¡ º¸¸é ³¡À¸·Î targetÀ̶ó´Â À̸§À¸·Î »ý¼ºµÈ VO°´Ã¼¸¦ addÇÏ°Ô µË´Ï´Ù.
ÀÌ·¸°Ô xmlÀÌ VO°´Ã¼¿¡ ¸ÅÇεȰÅÁÒ. Áö±Ýº¸´Ï map¿¡ ´ãÁö ¾Ê°í ±×³É xmlÀ» vo¿¡ ´ã¾Ò´õ¶ó¸é Á¶±Ý ´õ »¡¶óÁ³À»ÅÙµ¥¶ó´Â »ý°¢À» Çغ¾´Ï´Ù.