XmlReader 클래스 ReadInnerXml, ReadOuterXml
XmlReader 클래스에서는 요소 읽기와 특성 읽기 외에도 XML 데이터 소스에 있는 다양한 내용을 읽기 위한 메서드와 속성을 제공하고 있습니다. 여기에서는 이러한 부가적인 기능과 속성을 개괄적으로 소개할게요.
현재 노드의 내용을 문자열로 반환하는 ReadString 메서드를 제공하고 있습니다. ReadString 메서드를 이용하면 새로운 태그가 나타나기 전의 내용을 문자열 형태로 반환합니다.
public string ReadString ( );
if (reader.IsStartElement("book"))
{
Console.WriteLine(reader.ReadString());
}
태그 내부에 있는 모든 내용을 문자열로 읽을 때는 ReadInnerXml 메서드를 이용합니다.
public string ReadInnerXml ( );
그리고 태그를 포함하여 현재 위치의 노드와 모든 자식 노드의 정보를 얻고자 할 때는 ReadOuterXml 메서드를 사용합니다.
public string ReadOuterXml ( );
다음의 XML 데이터 파일을 소스로 XmlReader 개체를 만들어서 ReadInnerXml 메서드와 ReadOuterXml 메서드의 결과가 어떻게 다른지 간단히 살펴봅시다.
<?xml version="1.0" encoding="utf-8"?> <books> <book price="12000" count="50"> <title>ADO.NET </title> </book> <book price="15000" count="60"> <title>XML.NET </title> </book> </books> |
[문서] data.xml 문서 내용
static void Main(string[] args) { using(XmlReader reader = XmlReader.Create("data.xml")) { while(reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { Console.WriteLine("---ReadInnerXml 호출 결과---"); Console.WriteLine(reader.ReadInnerXml()); } } } } |
[소스] ReadInnerXml 메서드 호출 예제 코드
[그림] 실행 화면
static void Main(string[] args) { using(XmlReader reader = XmlReader.Create("data.xml")) { while(reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { Console.WriteLine("---ReadOuterXml 호출 결과---"); Console.WriteLine(reader.ReadOuterXml()); } } } } |
[소스] ReadOuterXml 메서드 호출 예제 코드
[그림] 실행 화면
이 외에 처리 명령이나 문서 형식, 주석, 공백 같은 형식의 노드를 거너뛰고 실제 내용이 있는 노드로 이동하는 MoveToContent 메서드를 제공하고 있습니다. MoveToContent 메서드에서는 현재 위치의 노드 형식을 반환합니다.
public XmlNodeType MoveToContent ( );
그리고 ReadSubtree 메서드를 이용하면 현재 노드 위치부터 자식 노드들을 읽을 때 사용할 XmlReader 개체를 반환받아 사용할 수 있습니다.
public virtual XmlReader ReadSubtree ( );
'프로그래밍 기술 > XML.NET' 카테고리의 다른 글
[XML.NET] 24. XmlDocument 클래스로 노드 검색 및 삭제 (0) | 2016.04.18 |
---|---|
[XML.NET] 23. XmlDocument 클래스로 노드 삽입 (0) | 2016.04.18 |
[XML.NET] 22. DOM 모델로 XML 문서 만들기 (0) | 2016.04.18 |
[XML.NET] 21. DOM 모델 개요 (0) | 2016.04.18 |
[XML.NET] 20. XmlSchema 클래스로 스키마 작성 및 판독 (0) | 2016.04.18 |
[XML.NET] 18.XmlReader 개체로 데이터 분석(Attribute 읽기) (0) | 2016.04.18 |
[XML.NET] 17. XmlReader 개체로 데이터 분석(요소 읽기) (0) | 2016.04.18 |
[XML.NET] 16. XmlReader 개체로 데이터 분석(노드 형식 알아내기) (0) | 2016.04.18 |
[XML.NET] 15. 유효성 검사 설정 XmlReader 개체 만들기 (2) | 2016.04.18 |
[XML.NET] 14. 외부 자원을 소스로 하는 XmlReader 개체 만들기 (0) | 2016.04.18 |