다음을 통해 공유


XDocument 클래스 개요

클래스에는 XDocument XML 선언, 처리 명령 및 주석이 포함된 유효한 XML 문서에 필요한 정보가 포함되어 있습니다.

XDocument 개체는 XDocument 클래스에서 제공하는 특정 기능이 필요한 경우에만 생성해야 합니다. 여러 상황에서 XElement와 직접 작업할 수 있습니다. 직접 XElement 작업하는 것은 더 간단한 프로그래밍 모델입니다.

XDocumentXContainer로부터 유래하므로, 자식 노드를 포함할 수 있습니다. 그러나 개체에는 XDocument 자식 XElement 노드가 하나만 있을 수 있습니다. 이는 XML 문서에 루트 요소가 하나만 있을 수 있다는 XML 표준을 반영합니다.

XDocument의 구성 요소

다음 XDocument 요소를 포함할 수 있습니다.

  • 하나의 XDeclaration 개체입니다. XDeclaration 를 사용하면 XML 선언의 관련 부분(XML 버전, 문서 인코딩 및 XML 문서가 독립 실행형인지 여부)을 지정할 수 있습니다.
  • 하나의 XElement 개체입니다. 이 개체는 XML 문서의 루트 노드입니다.
  • 임의의 개수의 XProcessingInstruction 개체입니다. 처리 명령은 XML을 처리하는 애플리케이션에 정보를 전달합니다.
  • 임의의 개수의 XComment 개체입니다. 주석은 루트 요소와 같은 수준에 있는 형제 요소들입니다.
  • DTD를 위한 하나입니다 XDocumentType.

XDocument을 직렬화할 때, XDocument.Declarationnull인 경우에도 기록기가 Writer.Settings.OmitXmlDeclarationfalse로 설정하면 (기본값), 출력에 XML 선언이 포함됩니다.

기본적으로 LINQ to XML은 버전을 "1.0"으로 설정하고 인코딩을 "utf-8"로 설정합니다.

XDocument 없이 XElement 사용

앞에서 설명한 XElement 대로 클래스는 LINQ to XML 프로그래밍 인터페이스의 기본 클래스입니다. 대부분의 경우 애플리케이션에서 문서를 만들 필요가 없습니다. XElement 클래스를 사용하여 다음 작업을 수행할 수 있습니다.

  • XML 트리를 만듭니다.
  • 다른 XML 트리를 추가합니다.
  • XML 트리를 수정합니다.
  • 저장합니다.

XDocument 사용

XDocument을 생성하려면 XElement 객체를 생성할 때와 마찬가지로 함수적 생성을 사용하세요.

다음 예제에서는 XDocument 개체와 연결된 포함된 개체를 만듭니다.

XDocument d = new XDocument(
    new XComment("This is a comment."),
    new XProcessingInstruction("xml-stylesheet",
        "href='mystyle.css' title='Compact' type='text/css'"),
    new XElement("Pubs",
        new XElement("Book",
            new XElement("Title", "Artifacts of Roman Civilization"),
            new XElement("Author", "Moreno, Jordao")
        ),
        new XElement("Book",
            new XElement("Title", "Midieval Tools and Implements"),
            new XElement("Author", "Gazit, Inbar")
        )
    ),
    new XComment("This is another comment.")
);
d.Declaration = new XDeclaration("1.0", "utf-8", "true");
Console.WriteLine(d);

d.Save("test.xml");
Dim doc As XDocument = <?xml version="1.0" encoding="utf-8"?>
                       <!--This is a comment.-->
                       <?xml-stylesheet href='mystyle.css' title='Compact' type='text/css'?>
                       <Pubs>
                           <Book>
                               <Title>Artifacts of Roman Civilization</Title>
                               <Author>Moreno, Jordao</Author>
                           </Book>
                           <Book>
                               <Title>Midieval Tools and Implements</Title>
                               <Author>Gazit, Inbar</Author>
                           </Book>
                       </Pubs>
                       <!--This is another comment.-->
doc.Save("test.xml")

이 예제는 test.xml에 다음 출력을 생성합니다.

<?xml version="1.0" encoding="utf-8"?>
<!--This is a comment.-->
<?xml-stylesheet href='mystyle.css' title='Compact' type='text/css'?>
<Pubs>
  <Book>
    <Title>Artifacts of Roman Civilization</Title>
    <Author>Moreno, Jordao</Author>
  </Book>
  <Book>
    <Title>Midieval Tools and Implements</Title>
    <Author>Gazit, Inbar</Author>
  </Book>
</Pubs>
<!--This is another comment.-->

참고하십시오