클래스에는 XDocument XML 선언, 처리 명령 및 주석이 포함된 유효한 XML 문서에 필요한 정보가 포함되어 있습니다.
XDocument 개체는 XDocument 클래스에서 제공하는 특정 기능이 필요한 경우에만 생성해야 합니다. 여러 상황에서 XElement와 직접 작업할 수 있습니다. 직접 XElement 작업하는 것은 더 간단한 프로그래밍 모델입니다.
XDocument는 XContainer로부터 유래하므로, 자식 노드를 포함할 수 있습니다. 그러나 개체에는 XDocument 자식 XElement 노드가 하나만 있을 수 있습니다. 이는 XML 문서에 루트 요소가 하나만 있을 수 있다는 XML 표준을 반영합니다.
XDocument의 구성 요소
다음 XDocument 요소를 포함할 수 있습니다.
- 하나의 XDeclaration 개체입니다. XDeclaration 를 사용하면 XML 선언의 관련 부분(XML 버전, 문서 인코딩 및 XML 문서가 독립 실행형인지 여부)을 지정할 수 있습니다.
- 하나의 XElement 개체입니다. 이 개체는 XML 문서의 루트 노드입니다.
- 임의의 개수의 XProcessingInstruction 개체입니다. 처리 명령은 XML을 처리하는 애플리케이션에 정보를 전달합니다.
- 임의의 개수의 XComment 개체입니다. 주석은 루트 요소와 같은 수준에 있는 형제 요소들입니다.
- DTD를 위한 하나입니다 XDocumentType.
XDocument을 직렬화할 때, XDocument.Declaration
가 null
인 경우에도 기록기가 Writer.Settings.OmitXmlDeclaration
을 false
로 설정하면 (기본값), 출력에 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.-->
참고하십시오
.NET