패턴이 일정하고 간단한 포맷을 가진 XML을 파싱할 일이 생겼는데
JAXP를 사용하려고 했지만 너무 복잡하다. 그래서 괜찮은 방법이 없을까 찾아 보다가
digester를 사용하면 xml파일을 아주 재밌게 파싱할 수 있다는걸 알았다.
xml을 읽어서 java beans에 매핑해준다.
http://wiki.apache.org/commons/Digester
http://wiki.apache.org/commons/Digester/FAQ
[xml]
[java source]
JAXP를 사용하려고 했지만 너무 복잡하다. 그래서 괜찮은 방법이 없을까 찾아 보다가
digester를 사용하면 xml파일을 아주 재밌게 파싱할 수 있다는걸 알았다.
xml을 읽어서 java beans에 매핑해준다.
http://wiki.apache.org/commons/Digester
http://wiki.apache.org/commons/Digester/FAQ
[xml]
<?xml version="1.0" encoding="UTF-8"?>
<list>
<item>20091110</item>
<item>20091109</item>
<item>20091108</item>
<item>20091107</item>
<item>20091106</item>
<item>20091105</item>
<item>20091104</item>
</list>
<list>
<item>20091110</item>
<item>20091109</item>
<item>20091108</item>
<item>20091107</item>
<item>20091106</item>
<item>20091105</item>
<item>20091104</item>
</list>
[java source]
public static List<String> parseDateList(String xmlUrl) {
URL url = null;
try {
url = new URL(xmlUrl);
} catch (MalformedURLException e) {
log.error(e, e);
}
Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate("list", ArrayList.class);
digester.addCallMethod("list/item", "add", 1);
digester.addCallParam("list/item", 0);
List<String> dateList = null;
try {
dateList = (List<String>) digester.parse(url.openStream());
} catch (IOException e) {
log.error(e, e);
} catch (SAXException e) {
log.error(e, e);
}
return dateList;
}
URL url = null;
try {
url = new URL(xmlUrl);
} catch (MalformedURLException e) {
log.error(e, e);
}
Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate("list", ArrayList.class);
digester.addCallMethod("list/item", "add", 1);
digester.addCallParam("list/item", 0);
List<String> dateList = null;
try {
dateList = (List<String>) digester.parse(url.openStream());
} catch (IOException e) {
log.error(e, e);
} catch (SAXException e) {
log.error(e, e);
}
return dateList;
}
'프로그래밍 노트' 카테고리의 다른 글
(PL/SQL) about function (0) | 2009.12.02 |
---|---|
Javascript로 파일 읽기 (0) | 2009.11.16 |
Oracle SQL 메모 (0) | 2009.10.19 |
grep과 vi 를 하나로 (0) | 2009.09.19 |
Axis2 codegen bug (0) | 2009.08.09 |