다음을 통해 공유


XPathDocument 및 XmlDocument를 사용하여 XML 데이터 읽기

업데이트: November 2007

두 가지 방법으로 System.Xml.XPath 네임스페이스에서 XML 문서를 읽을 수 있습니다. 하나는 읽기 전용 XPathDocument 클래스를 사용하여 XML 문서를 읽는 것이고 다른 하나는 System.Xml 네임스페이스에서 편집 가능한 XmlDocument 클래스를 사용하여 XML 문서를 읽는 것입니다.

XPathDocument 클래스를 사용하여 XML 문서 읽기

XPathDocument 클래스는 XPath 데이터 모델을 사용하여 빠른 속도의 읽기 전용 메모리 내 XML 문서 표현을 제공합니다. 6개 생성자 중 하나를 사용하여 XPathDocument 클래스의 인스턴스가 생성됩니다. 이러한 생성자를 사용하면 XML 파일에 대한 string 경로뿐 아니라 Stream, TextReader 또는 XmlReader 개체를 사용하여 XML 문서를 읽을 수 있습니다.

다음 예제에서는 XPathDocument 클래스의 string 생성자를 사용하여 XML 문서를 읽는 방법을 보여 줍니다.

XmlDocument 클래스를 사용하여 XML 문서 읽기

XmlDocument 클래스는 W3C DOM(문서 개체 모델) Level 1 Core 및 DOM Level 2 Core를 구현하는 XML 문서의 편집 가능한 메모리 내 표현입니다. 세 가지 생성자 중 하나를 사용하여 XmlDocument 클래스의 인스턴스가 생성됩니다. 매개 변수 없이 XmlDocument 클래스 생성자를 호출하여 비어 있는 새 XmlDocument 개체를 만들 수 있습니다. 생성자를 호출한 후 Load 메서드를 사용하여 XML 파일의 string 경로뿐 아니라 Stream, TextReader 또는 XmlReader 개체에서 새 XmlDocument 개체로 XML 데이터를 로드합니다.

다음 예제에서는 매개 변수 없이 XmlDocument 클래스 생성자 및 Load 메서드를 사용하여 XML 문서를 읽는 방법을 보여 줍니다.

Dim document As XmlDocument = New XmlDocument()
document.Load("books.xml")
XmlDocument document = new XmlDocument();
document.Load("books.xml");

XML 문서의 인코딩 결정

이전 단원에 표시된 것과 같이 XmlReader 개체를 사용하여 XML 문서를 읽고 XPathDocumentXmlDocument 개체를 만들 수 있습니다. 그러나 XmlReader 개체는 인코딩되지 않은 데이터를 읽을 수 있으며 이러한 경우 인코딩 정보를 제공하지 않습니다.

XmlTextReader 클래스는 XmlReader 클래스에서 상속되며 Encoding 속성을 사용하여 인코딩 정보를 제공합니다. 또한 XPathDocument 개체 또는 XmlDocument 개체를 만드는 데 사용할 수도 있습니다.

XmlTextReader 클래스에서 제공하는 인코딩 정보에 대한 자세한 내용은 XmlTextReader 클래스 참조 문서의 Encoding 속성을 참조하십시오.

XPathNavigator 개체 만들기

XPathDocument 또는 XmlDocument 개체로 XML 문서를 읽어온 후 XPathNavigator 개체를 만들어 기본 XML 데이터를 선택, 평가 및 탐색할 수 있으며 일부 경우에 편집할 수도 있습니다.

XmlNode 클래스와 더불어 XPathDocumentXmlDocument 클래스는 System.Xml.XPath 네임스페이스의 IXPathNavigable 인터페이스를 구현합니다. 결과적으로 세 클래스는 모두 XPathNavigator 개체를 반환하는 CreateNavigator 메서드를 제공합니다.

XPathNavigator 클래스를 사용하여 XML 문서 편집

XPathNavigator 클래스를 사용하여 XML 데이터를 선택, 평가 및 탐색할 수 있을 뿐 아니라 XML 문서가 생성된 개체를 기반으로 XML 문서를 편집할 수도 있습니다.

XPathDocument 클래스는 읽기 전용인 반면, XmlDocument 클래스는 편집 가능하므로 XPathDocument 개체에서 만든 XPathNavigator 개체는 XML 문서를 편집하는 데 사용할 수 없는 반면, XmlDocument 개체에서 만든 개체는 사용할 수 있습니다. XML 문서를 읽기만 하려면 XPathDocument 클래스를 사용해야 합니다.XML 문서를 편집해야 하거나 XmlDocument 클래스에서 제공하는 이벤트 처리 등의 추가 기능에 액세스해야 할 경우 XmlDocument 클래스를 사용해야 합니다.

XPathNavigator 클래스의 CanEdit 속성은 XPathNavigator 개체가 XML 데이터를 편집할 수 있는지 여부를 지정합니다.

다음 표에서는 각 클래스에 대한 CanEdit 속성 값에 대해 설명합니다.

IXPathNavigable 구현

CanEdit

XPathDocument

false

XmlDocument

true

참고 항목

개념

XPath 데이터 모델을 사용하여 XML 데이터 처리

XPathNavigator를 사용하여 XML 데이터 액세스

XPathNavigator를 사용하여 XML 데이터 편집

XPathNavigator를 사용하여 스키마 유효성 검사

참조

XmlDocument

XPathDocument

XPathNavigator