//xstream.java public class xstream { public static void main(String[] args) { XStream xstream = new XStream(new DomDriver("euc-kr")); xstream.alias("list", List.class); xstream.processAnnotations(List.class); xstream.processAnnotations(N.class); try{ InputStream reader = new FileInputStream("get_data.xml"); List list = (List)xstream.fromXML(reader); System.out.println("ky :" + list.Ka); System.out.println("fn :" + list.FN); for (N n: list.ns) { System.out.println("n url :" + n.url); System.out.println("n text :" + n.text); } }catch(IOException e){ e.printStackTrace(); } } }
//N.java public class N { @XStreamAsAttribute public String url; @XStreamAsAttribute public String text; }
//List.java @XStreamAlias("list") public class List { @XStreamAsAttribute public String DN; @XStreamAlias("KY") @XStreamAsAttribute public String Ka; @XStreamAsAttribute public String FN; @XStreamAsAttribute public String UR; @XStreamImplicit(itemFieldName = "n") public ArrayListns; }
List.java 를 보면 각 필드 위에 @XStreamAsAttribute 을 적어주었다.
필드를 에트리뷰트로 인식하라는 어노테이션이다.
적지 않으면 에러는 나지 않지만 값을 못가져온다.
또한 Alias도 반드시 지정을 해야한다. 뭐 속성명을 클래스로 하면 좋겠지만, 나같이 대소문자 구분이 있거나,
다르게 했을경우는 Main에 xstream.alias("list", List.class); 를 적거나 List 클래스명 위에 @XStreamAlias("list")를 적어주면 된다.
xstrem : http://xstream.codehaus.org/ 출처 : http://dol9.tistory.com/87
'spring' 카테고리의 다른 글
<context:component-scan />의 사용법 (1) | 2012.10.16 |
---|---|
어노테이션 기반 설정 (0) | 2012.10.16 |
XStream XML (0) | 2012.03.15 |
@Controller, @RequestMapping - Annotation in Spring(어노테이션을 사용한 컨트롤러 구현) (0) | 2012.03.15 |
@RequestMapping 어노테이션을 이용한 요청 매핑 설정 (0) | 2012.03.15 |