//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 ArrayList ns;
}
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 |