현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

C#을 이용하여 파일로부터 XML을 읽는 방법

이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.

이 문서의 영문 버전 보기:307548
이 문서의 Microsoft Visual Basic.NET 버전을 참조 하십시오. 301225.

이 문서에서는 다음 Microsoft.NET Framework 클래스 라이브러리 네임 스페이스:
  • System.Xml
요약
이 글은 확장 가능한 태그 언어 (XML) 파일을 읽어올 수 있는 XmlTextReader 클래스를 사용하는 방법을 설명합니다. XmlTextReader 를 직접 구문 분석 하 고 토큰화에서 World Wide Web 컨소시엄 (W3C) XML 사양의 네임 스페이스 뿐만 아니라 XML 구현 하는 XML 1.0 사양을 제공 합니다. 이 문서의 XML 문서 개체 모델 (DOM) 같은 개체 모델을 사용 하는 대신 XML 토큰화 된 고속 스트림 액세스를 제공 합니다.

요구 사항

다음은 권장된 하드웨어, 소프트웨어, 네트워크 인프라 및 필요한 서비스 팩입니다.
  • Microsoft Visual Studio 2005 또는 Microsoft Visual Studio.NET
이 문서에서는 독자가 다음 항목에 익숙하다고 가정합니다:
  • XML 용어
  • XML 파일을 만들고 읽기

파일에서 XML을 읽는 방법

이 예제에서는 Books.xml 이라는 파일을 사용 합니다. Books.xml 파일을 직접 만들거나.NET 소프트웨어 개발 키트 (SDK) 퀵 스타트는 다음 폴더에 포함 되어 있는 예제 파일을 사용 합니다.
Visual Studio.NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs \Program Files\Microsoft
Books.xml \Bin\Debug 폴더에이 프로젝트를 만들면 폴더에 복사 해야 합니다. Books.xml은 다운로드 하기 위해 사용할 수도 있습니다. 참조 하는 "참조"다운로드 위치에 대 한 섹션입니다.
  1. Visual Studio 2005 또는 Visual Studio.NET을 시작 합니다.
  2. 새로운 Visual C# 콘솔 응용 프로그램을 만듭니다. 에 직접 작업을 진행 하기는 "전체 코드 목록"섹션 또는 응용 프로그램을 빌드하려면 다음이 단계를 계속 수행 합니다.
  3. 프로젝트는 System.Xml.dll 어셈블리에 대 한 참조가 포함 되어 있는지 확인 하십시오.
  4. 나중에 코드에서 XmlTextReader 선언을 한정하지 않아도 되도록 System.Xml 네임 스페이스에 using 지시문을 지정합니다. 다른 선언 앞에서 using 지시문을 사용 해야 합니다.
    using System.Xml;					
  5. XmlTextReader 개체의 인스턴스를 만들고 XML 파일을 사용 하 여 채웁니다. XML DOM; 오버 헤드 없이 원시 데이터에 액세스 해야 할 경우 XmlTextReader 클래스는 일반적으로 사용 따라서 XmlTextReader 클래스는 빠른 XML을 읽는 메커니즘을 제공 합니다. XmlTextReader 클래스에는 다른 생성자는 XML 데이터의 위치를 지정 합니다. 다음 코드는 XmlTextReader 클래스의 인스턴스를 만들고 Books.xml 파일을 로드. Class1 Main 프로시저에 다음 코드를 추가 합니다.
    XmlTextReader reader = new XmlTextReader ("books.xml");					
  6. XML을 통해 읽습니다. (Note이 단계에서는 외부 "while" 루프를 하 고 다음 두 단계에서 XML을 읽는 루프를 사용 하는 방법을 보여 줍니다.) XmlTextReader 개체를 만든 후 Read 메서드를 사용 하 여 XML 데이터를 읽습니다. Read 메서드는 XML 파일을 순차적으로 읽다가 파일의 끝에 도달하게 되면 "False"값을 반환합니다.
    while (reader.Read()) {    // Do some work here on the data.	Console.WriteLine(reader.Name);}Console.ReadLine();					
  7. 노드를 검사 합니다. XML 데이터를 처리 하기 위해 각 레코드는 하나의 노드 종류는 NodeType 속성에서 결정할 수 있는. 속성 이름 노드 이름 (요소와 특성 이름) 및 현재 노드 (또는 레코드) 노드 (노드 텍스트) 값을 반환합니다. NodeType 열거형 노드 유형을 결정합니다. 다음 코드 예제는 요소 이름과 문서 종류를 표시합니다. 참고가이 샘플에서는 요소 특성을 무시 합니다.
    while (reader.Read()) {    switch (reader.NodeType)     {        case XmlNodeType.Element: // The node is an element.            Console.Write("<" + reader.Name);   Console.WriteLine(">");            break;  case XmlNodeType.Text: //Display the text in each element.            Console.WriteLine (reader.Value);            break;  case XmlNodeType. EndElement: //Display the end of the element.            Console.Write("</" + reader.Name);   Console.WriteLine(">");            break;    }}					
  8. 특성을 검사 합니다. 요소 노드 형식에 관련 된 특성 노드 목록이 포함 될 수 있습니다. MovetoNextAttribute 메서드는 요소의 각 특성을 통해 순차적으로 이동합니다. 노드에 특성이 있는지 여부를 테스트 하려면 HasAttributes 속성을 사용 합니다. AttributeCount 속성은 현재 노드의 특성 수를 반환합니다.
    while (reader.Read()) {       switch (reader.NodeType)        {           case XmlNodeType.Element: // The node is an element.               Console.Write("<" + reader.Name);               while (reader.MoveToNextAttribute()) // Read the attributes.                   Console.Write(" " + reader.Name + "='" + reader.Value + "'");      Console.WriteLine(">");               break;     case XmlNodeType.Text: //Display the text in each element.               Console.WriteLine (reader.Value);               break;     case XmlNodeType. EndElement: //Display the end of the element.               Console.Write("</" + reader.Name);      Console.WriteLine(">");               break;       }   }					
  9. 저장 하 고 프로젝트를 닫습니다.

전체 코드 목록

using System;using System.Xml;namespace ReadXMLfromFile{    /// <summary>    /// Summary description for Class1.    /// </summary>    class Class1    {        static void Main(string[] args)        {            XmlTextReader reader = new XmlTextReader ("books.xml");            while (reader.Read())             {                switch (reader.NodeType)                 {                    case XmlNodeType.Element: // The node is an element.                        Console.Write("<" + reader.Name);                        Console.WriteLine(">");                        break;                    case XmlNodeType.Text: //Display the text in each element.                        Console.WriteLine (reader.Value);                        break;                    case XmlNodeType.EndElement: //Display the end of the element.                        Console.Write("</" + reader.Name);                        Console.WriteLine(">");                        break;                }            }            Console.ReadLine();        }    }}				

샘플 출력

<bookstore><book><title>The Autobiography of Benjamin Franklin</title><author><first-name>Benjamin</first-name><last-name>Franklin</last-name></author><price>8.99</price></book><book><title>The Confidence Man</title><author><first-name>Herman</first-name><last-name>Melville</last-name></author><price>11.99</price></book><book><title>The Gorgias</title><author><name>Plato</name></author><price>9.99</price></book></bookstore>				

문제 해결

코드를 테스트할 때 다음과 같은 예외 오류 메시지가 나타날 수 있습니다: 처리 되지 않은 예외: System.Xml.XmlException: 예기치 않은 XML 선언입니다. 문서에서 첫 번째 노드의 XML 선언 및 공백 문자가 앞에 올 수 있습니다.

추가 정보: 시스템 오류. 다음 코드 줄에서 예외 오류가 발생 합니다: 반면
(reader.Read())
예외 오류는 잘못 된 처리 명령에 의해 발생 합니다. 예를 들어, 처리 명령에 관계 없는 공백이 포함 될 수 있습니다. 다음은 잘못 된 처리 명령의 예입니다.
<?xml version='1.0' ?>
이 xml 태그 앞에 있는 공간에는 '<’ bracket.="" remove="" the="" preceding="" whitespace="" to="" resolve="" the=""></’>

참조

다음 파일은 Microsoft 다운로드 센터에서 다운로드할 수 있습니다.
.NET Framework의 XML 클래스 및 C#에 대 한 자세한 내용은 다음 Microsoft Developer Network (MSDN) 웹 사이트를 방문 하십시오.XmlReader 클래스에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하십시오.XmlReader 를 사용 하 여 XML 데이터를 읽는 방법에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하십시오.

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 307548 - 마지막 검토: 09/27/2015 13:43:00 - 수정: 5.0

Microsoft Visual C# 2008 Express Edition, Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Standard Edition

  • kbdownload kbhowtomaster kbmt KB307548 KbMtko
피드백