본문 바로가기
JAVA

자바 로 xml 문서의 dom 파싱

by 정윤재 2009. 2. 12.

이벤트 방식의 sax도 있으나 일단 제가 직접해서 제대로 돌아간것은

이것입니다.

일단 person.xml

<?xml version="1.0"?>
<book>
<person>
<first>kiran</first>
<last>pai</last>
<age>22</age>
</person>
</book>


그리고 parsing 하는 클래스 입니다.

package DCD;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class xmlTest {
 public static void main(String[] args){
  
  try{
   DocumentBuilderFactory factory  =  DocumentBuilderFactory.newInstance();
   DocumentBuilder builder    =  factory.newDocumentBuilder();
   Document document     =  builder.parse("c:/person.xml");
   
   NodeList nodelist     =  document.getElementsByTagName("last");
   //태그 (< >)의 이름으로 불러오는 내용
   
   
   //nodelist의 크기를 구하려면 getLength()라는 메소드가 있음
   
   Node node       =  nodelist.item(0);//첫번째 element 얻기
   
   Node textNode      =  nodelist.item(0).getChildNodes().item(0);
   
   //element의 text 얻기
   
   System.out.println(textNode.getNodeValue());
   
   
  }catch(Exception e){
   e.printStackTrace();
   
  }
  
 }
}


이렇게 하면 last라는 태그 안의 내용이 찍히게 되죠.(pai)

솔직히 지금은 nodelist에서 node를 얻어왔는데 왜 또 거기서 getChildNodes를 해서

text를 얻어야 하는지 모르겠습니다. 하지만 곧 알아내서 다시 수정하도록 하겠습니다.

지금 이 코드는 제가 작성해서 돌려본 결과 잘 돌아가는 코드 입니다.



댓글