DOM 파싱
DOM 파싱은 xml을 전부 읽어서 메모리에 올려두는 방식이다. 한 줄씩 읽는 SAX파싱과 다르게 수정/삭제가 가능하다.
company.xml
|
<?xml version=”1.0″ encoding=”EUC-KR”?>
<product> |
|
package dom; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList;
public class MainClass {
public static void main(String[] args) {
Document doc; //도큐먼트 선언. xml 문서 전범위를 도큐먼트라고 한다. Element root; //루트 선언. <>로 묶인 것을 ‘엘리먼트’라고 하는데 가장 최상위 태그를 ‘루트’ 라고 한다. String i1,i2,i3;
try{ //1. xml문서를 doc변수에 전부 기억시킴 DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); //”도큐먼트 빌더 팩토리”생성 DocumentBuilder db=dbf.newDocumentBuilder();//”도큐먼트 빌더”생성 doc=db.parse(new File(“src\\company.xml”)); //도큐먼트 빌더로 xml파싱(다 읽었음.) root=doc.getDocumentElement(); //도큐먼트의 첫번째 엘리먼트를 가져와서 root로 설정
//2. 출력하기 NodeList node; //노드리스트 선언 //node=root.getElementsByTagName(“product”); node=root. getElementsByTagName(“no”); // no엘리먼트를 가져와서 노드리스트로 만들기 i1=node.item(2).getFirstChild().getNodeValue(); //2번째 아이템 가져오기 //cf) 0번째: 1, 1번째: 2, 3번째: 3
node=root. getElementsByTagName(“name”); //name엘리먼트를 가져와서 노드리스트로 만들기 i2=node.item(2).getFirstChild().getNodeValue(); //2번째 아이템 가져오기 //cf) 0번째: 비누, 1번째: 샴푸, 3번째: 폼클렌징 node=root. getElementsByTagName(“value”); //value엘리먼트 가져오기 i3=node.item(2).getFirstChild().getNodeValue(); //cf) 0번째: 2000, 1번째: 5000, 3번째: 4000
System.out.println(i1+“===”+i2+“===”+i3); //3===폼클렌징===4000 }catch(Exception ex){System.out.println(ex.getMessage());} } } |
