블로그 이미지
기대주
초초초초보 개발자.. 프로그래머도 아니고..엔지니어도 아니고.. 은땡때문에살지요^^

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

'A&J'에 해당되는 글 20

  1. 2007.05.23 1-1 프로젝트(xml 파일 읽어오기)
2007. 5. 23. 18:03 A&J프로젝트


Digester.java 는 읽을 xml의 엘리멘트와 애트리뷰트이다.
 엘리멘트는 xml의 시작태그와 종료태그를 말한다. 그 사이의 값을 읽을때 사용하고 애트리뷰트는 안의 속성을 말한다.

예를 들어.
<RESULT version='2.0'>
 <NAME>jupid</NAME>
 <VALUE>alex~~~~~~~~~~~~</VALUE>
 <CHILD>
  <NAME>jupid1</NAME>
  <VALUE>alex~~~~~~~~~~~~!</VALUE>
 </CHILD>
 <CHILD>
  <NAME>jupid2</NAME>
  <VALUE>alex~~~~~~~~~~~~@</VALUE>
 </CHILD>
 <CHILD>
  <NAME>jupid3</NAME>
  <VALUE>alex~~~~~~~~~~~~#</VALUE>
 </CHILD>
 <CHILD>
  <NAME>jupid4</NAME>
  <VALUE>alex~~~~~~~~~~~~$</VALUE>
  <CHILD1>
   <NAME>jupid4</NAME>
   <VALUE>alex~~~~~~~~~~~~$</VALUE>
  </CHILD1>
 </CHILD>
</RESULT>
value와 name은 엘리멘트이고 version은 애트리뷰트이다.
child는 리스트로 받아서 리스트 안에있는 value와 name을 set,get하는 클래스를 다시 만든다.

Dige.java

읽을 파일을 설정한다. reader로 읽고 싶다면 String을 쓴다.
다이제스트 객체를 생성하고

dg.addObjectCreate("RESULT",dt.DigesterTest.class);         //RESULT 경로에서 자바빈 클래스 매칭
                                                                           RESULT를 만나면 파싱을 시작한다.라는 같다..
dg.addBeanPropertySetter("RESULT/NAME","nameG");
dg.addBeanPropertySetter("RESULT/VALUE","value");    //RESULT/VALUE 경로를 자바빈 변수에 설정
                                                                            RESULT/VALUE 은 자바빈에 넣어라 같음..
dg.addObjectCreate("RESULT/CHILD",dt.Child.class);    //경로를 바꿔 다른 클래스 생성.. 경로를 바뀜..차일드이기 때문에

dg.addSetNext("RESULT/CHILD", "addChild");            //위에서 보면 차일드는 이름은 같고 안에 다른 애트리뷰트들을 가지고 있다. 이것들을 표현하기 위해 자바의 for문 처럼 "돌아라" 뜻으로 이해함..

dg.addSetProperties("RESULT","version","version");   //속성을 찍기 위해 표현
                                                                       이것은 속성을 자바빈에 넣어라 이다. 위에서 설명한  dg.addBeanPropertySetter와 좀 다르다..version이 두번나온다. 속성이기때문인가?





Object obj= dg.parse(file);               //상단에 파일로 적었기 때문에 (file)로 했다.
                                                      스트링으로 하고싶다면 (reader)를 쓴다.


결과

사용자 삽입 이미지

xml 파일을 읽은 모습이다.
posted by 기대주