본문 바로가기
JAVA

자바로 xml 형식의 String 파싱

by 정윤재 2009. 4. 20.

package DCD;import java.io.StringReader;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;
import org.xml.sax.InputSource;
public class xmlTest {
 public static void main(String[] args){
  
  try{
   
   
   StringBuffer sb      =  new StringBuffer();
   sb.append("<?xml version=\"1.0\" encoding=\"EUC-KR\"?>");
   sb.append("<response>");
   sb.append(" <response_header>");
   sb.append("<version>2.0</version>");
   sb.append("<primitive_type>SUBSCRIPTION_NOTIFICATION_RESPONSE</primitive_type>");
   sb.append("<transaction_id>537844880</transaction_id>");
   sb.append("<connection_id>CPTET_23000320</connection_id>");
   sb.append("</response_header>");
   sb.append("<subscription_notification_response>");
   sb.append("<result>0</result>");
   sb.append("<user_info_result>");
   sb.append("<user_info>");
   sb.append("<type>MDN</type>");
   sb.append("<id>0117991370</id>");
   sb.append(" </user_info>");
   sb.append("  <status>16</status>");
   sb.append("</user_info_result>");
   sb.append("</subscription_notification_response>");
   sb.append("</response>");
   
   
   
   DocumentBuilderFactory factory  =  DocumentBuilderFactory.newInstance();
   DocumentBuilder builder    =  factory.newDocumentBuilder();
   //Document document     =  builder.parse("c:/person.xml");
   
   //*****************************************************
   Document document     =  builder.parse(new InputSource(new StringReader(sb.toString())));
   //여기가 핵심 *******************************************
   
   NodeList nodelist     =  document.getElementsByTagName("status");
   //태그 (< >)의 이름으로 불러오는 내용
   
   
   //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();
   
  }
  
 }
}


댓글