Commons Digester 샘플 파일입니다.
이번에 jakarta 홈페이지에 Commons Digester 1.4.1이 릴리즈 되었다는 소식을 듣고..
그냥 알고만 있던 Digester를 한번 이용해 보려고 테스트 프로그램을 사용해봤습니다.
실제로 프로젝트 수행시 이용하면 많은 도움을 받을거도 같았죠..
다음에 올리는 샘플 프로그램은 http://www.onjava.com/pub/a/onjava/2002/10/23/digester.html에 올라온 것을 타이핑 하는 수준입니다 ^^;;
실 프로젝트에서 테스트해본 것은 데이터 파일(보안 사안이라서 ^^;;)때문에 공개를 할수가 없지만..
위의 샘플 프로그램만으로도 충분한 테스트가 될거로 생각합니다.
위 페이지를 굳이 번역하지 않으셔도.. 관심이 가시는 분은 이해하시리라 생각합니다 -_-;;
이클립스에서 테스트 하였고.. 실행 파일은 DigesterDriver.java 와 XmlRulerDriver.java 파일입니다.
참.. 덧붙여서 BeanUtils를 이용해서 다시 객체를 xml 파일로 전환하는 것을 생각해보았는데..
단순한 평면 xml의 경우는 쉽게 되는데..
아직 Vector 형태의 처리를 위해 특별한 처리(형태 정의 등과 같은)가 필요하여 쉽게는 되지 않을 것으로 생각합니다. 물론 이와 관련된 다른 기술들이 많이 있지만 (Castor, JAXB와 같은).. 쉽게 처리해보려고 했더니.. 쉽지 않더군요 ^^;;
buf.append("<DOCUMENT>");
Map dataMap = PropertyUtils.describe(dataObject);
Object[] dataProp = dataMap.keySet().toArray();
for (int j = 0; j < dataProp.length; j++ ) {
String field = (String) dataProp[j];
if ("class".equals(field)) continue;
String val = (String) dataMap.get(field);
if (val == null) {
buf.append("<").append(key.toUpperCase()).append("/>");
} else {
buf.append("<").append(key.toUpperCase()).append(">");
buf.append("<![CDATA[").append(val.trim()).append("]]>");
buf.append("</").append(key.toUpperCase()).append(">");
}
}
buf.append("</DOCUMENT>");
제가 테스트해본 프로그램의 일부입니다.
참고가 되었으면 좋겠네요..