1. 닷넷은 XML 기반
모든 닷넷 기술은 XML을 기반으로 하고 있다고 해도 지나치지 않을 정도로 XML은 닷넷의 핵심 기술이다. 닷넷 어플리케이션 간에 데이터를 교환하는 표준 형식으로 사용하는 것은 물론 실행환경을 설정하는 구성 파일에서도 XML 파일을 사용한다.
웹 프로젝트에서 사용하고 있는 환경 구성 파일(web.config)도 XML 문서로 되어 있다. XML 파일에 자식 요소를 추가하거나 속성을 바꾸어서 실행 환경을 변경한다.
2. XML DOM
XML DOM에서 XML 문서를 다루는 기본 기능을 제공하는 것이 XmlNode 객체이다. XmlNode 객체는 XML 트리에서 하나의 요소를 나타내며, 노드 이동은 물론 데이터 편집 및 삭제 기능도 제공한다.
다음은 XmlNode 객체의 속성들이다.
* 요소 : 요소(element)란 태그를 열고 닫는 곳까지와 그 사이에 있는 내용을 포함해서 부르는 용어이다.
* 다음에 설명할 내용에 대한 예제 파일은 첨부파일로 첨부하였다.(첨부파일 이름 : movies.xml)
3. XML 데이터 읽기
XmlDocument 객체는 XML 문서를 나타낸다. XML 파일로부터 XML 내용을 읽어오려면 다음과 같이 Load 메서드를 부른다.
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath(“movies.xml”));
다음은 XML 데이터 읽은 후 Dataset에 넣고 화면에 표시하는 예이다.
4. XML 데이터 쓰기
XmlDocument 객체는 XML 문서를 생성하고, 수정할 수 있는 메서드를 제공한다.
다음은 XML 문서를 다루는 XmlDocument 객체의 메서드이다. 자식 노드를 추가하거나, 이미 존재하는 노드를 지울 때 사용하는 메서드이다.
5. DOM을 이용한 데이터 필터링
데이터베이스에서 Select 문을 사용하여 데이터를 읽어 오고, Where 조건절을 이용하여 조건에 맞는 데이터만 필터링해서 데이터를 읽어 오듯이 XML 문서에서도 데이터 필터링 기능을 이용할 수 있다.
다음은 XML DOM 객체를 이용하여 rating 노드만 읽어 온 예이다.
XmlNodeList list = doc.SelectNodes(“movies/movie/rating”);
SelectNodes 메서드에 넘겨주는 표현식은 XML 문서의 전체 트리 구조를 알고 있어야 만들 수 있다.
루트 노드를 기준으로 레벨을 바꾸면서 하위 노드로 이동할 수 있다. 하위 노드를 지정하는 것은 디렉토리에서 하위 디렉토리를 지정하는 것과 비슷하다. 하위 노드를 지정할 때는 ‘/’를 사용한다.
다음은 예문과 그것을 실행한 결과 값이다.
예문)
실행결과)
전체 관람가 15세 관람가 12세 관람가
6. 조건 필터링
조건에 맞는 데이터만 선택해서 읽어 오는 경우에는 SelectNodes 메서드를 호출할 때 조건을 지정해야 한다.
다음은 movies.xml 에서 movie 노드에 있는 genre 속성을 검사해서 ACTION 인 값을 가지 노드를 찾고, 그 자식 노드인 title 노드를 가져오는 예제이다.
예문)
실행 결과)
로빈후드 페르시아의 왕자
필터링한 결과가 하나의 단일 노드라면 SelectSingleNode 메서드를 이용할 수 있다. 리턴 값은 XmlNode 객체를 리턴한다.
XmlNode node = doc.SelectSingleNode(“movies/movie[@no=’2’]/title”);
|