프로그래밍 기술/XML.NET

[XML.NET] 13. XmlReader 개체 만들기 예제

언제나휴일 2016. 4. 18. 12:37
반응형

XmlReader 개체 만들기 예제

 

 이번에는 간단한 예제를 통해 XmlReader 개체를 만드는 방법을 살펴봅시다. 먼저 12가지 Create 메서드 중에 4가지 방법을 사용하는 예를 보여드리고 난 후에 외부 데이터를 원본으로 XmlReader 개체를 생성하는 예제를 보여드릴게요. 그리고 마지막으로 XmlSchemaSet 개체를 이용하여 유효성 검사를 하는 예제를 보여드릴게요.

 

 먼저 예제에 사용할 원본 XML 파일인 "data.xml"의 내용을 살펴봅시다.


data.xml


 

<?xml version="1.0" encoding="utf-8"?>

<!--XmlReader 개체 만들기-->

<books>

  <book>

    <title>XML.NET ADO.NET</title>

    <가격>22000</가격>

  </book>

</books>

[문서] data.xml 문서 내용

 

 다음의 예제 코드는 다양한 형태로 XmlReader 개체를 생성하여 입력 스트림의 내용을 XmlWriter 개체를 이용하여 콘솔 화면에 출력하는 소스입니다.

 

 여기에서는 네 가지 방법으로 XmlReader 개체를 생성하는 것을 보여주고 있습니다. 하나는 입력 스트림을 전달하여 XmlReader 개체를 생성하는 것이고 두 번째는 입력 스트림과 XmlReaderSettings 개체를 이용, 세 번째는 소스 파일의 uri를 문자열로 전달하여 생성, 네 번째는 소스 파일의 uri XmlReaderSettings 개체를 이용하는 것입니다.

 

 참고로 예제에 사용한 XmlReaderSettings 개체는 주석을 무시하도록 설정하였습니다.

 

Program.cs


static void Main(string[] args)

{

    //Create(Stream input);

    Console.WriteLine("---------Start Test1--------");

    FileStream fs = new FileStream("data.xml",

                FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read);

    XmlReader reader1 = XmlReader.Create(fs);

    WirteConsole(reader1);

    reader1.Close();

    fs.Close();

    Console.WriteLine("--------- End Test1 --------");

    //Create(Stream input, XmlReaderSettings settings);

    Console.WriteLine("---------Start Test2--------");

    fs = new FileStream("data.xml",

            FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read);

    XmlReaderSettings settings = new XmlReaderSettings();

    settings.IgnoreComments = true;

    XmlReader reader2 = XmlReader.Create(fs,settings);

    WirteConsole(reader2);

    reader2.Close();

    fs.Close();

    Console.WriteLine("--------- End Test2 --------");

    //Create(string uri);

    Console.WriteLine("---------Start Test3--------");

    settings.IgnoreComments = true;

    XmlReader reader3 = XmlReader.Create("data.xml");

    WirteConsole(reader3);

    reader3.Close();

    Console.WriteLine("--------- End Test3 --------");

    //Create(string uri, XmlReaderSettings settings);

    Console.WriteLine("---------Start Test4--------");

    settings.IgnoreComments = true;

    XmlReader reader4 = XmlReader.Create("data.xml",settings);

    WirteConsole(reader4);

    reader4.Close();

    Console.WriteLine("--------- End Test4 --------");

}

private static void WirteConsole(XmlReader reader)

{

    XmlWriter xwriter = XmlWriter.Create(Console.Out);

    xwriter.WriteNode(reader, false);

    xwriter.Close();

    Console.WriteLine();

}

[소스] XmlReader 개체 만들기 예제 코드

 


XmlReader 개체 만들기 예제 실행 화면

[그림] 실행 화면

반응형