XDocument, klasa — przegląd
Klasa XDocument zawiera informacje niezbędne do prawidłowego dokumentu XML, który zawiera deklarację XML, instrukcje przetwarzania i komentarze.
Musisz utworzyć XDocument obiekty tylko wtedy, gdy potrzebujesz określonych funkcji udostępnianych przez klasę XDocument . W wielu okolicznościach możesz pracować bezpośrednio z usługą XElement. Praca bezpośrednio z XElement programem to prostszy model programowania.
XDocument element pochodzi z XContainerklasy , aby mógł zawierać węzły podrzędne. XDocument Jednak obiekty mogą mieć tylko jeden węzeł podrzędnyXElement. Odzwierciedla to standard XML, który może zawierać tylko jeden element główny w dokumencie XML.
Składniki narzędzia XDocument
Element XDocument może zawierać następujące elementy:
- Jeden XDeclaration obiekt. XDeclaration Umożliwia określenie odpowiednich części deklaracji XML: wersji XML, kodowania dokumentu i tego, czy dokument XML jest autonomiczny.
- Jeden XElement obiekt. Ten obiekt jest węzłem głównym dokumentu XML.
- Dowolna XProcessingInstruction liczba obiektów. Instrukcja przetwarzania przekazuje informacje do aplikacji, która przetwarza kod XML.
- Dowolna XComment liczba obiektów. Komentarze będą elementami równorzędnymi elementu głównego.
- Jeden XDocumentType dla dtD.
Podczas serializacji XDocument, nawet jeśli XDocument.Declaration
jest null
, dane wyjściowe będą miały deklarację XML, jeśli składnik zapisywania ma Writer.Settings.OmitXmlDeclaration
wartość false
(wartość domyślna).
Domyślnie LINQ to XML ustawia wersję na "1.0" i ustawia kodowanie na "utf-8".
Używanie elementu XElement bez elementu XDocument
Jak wspomniano wcześniej, XElement klasa jest główną klasą w interfejsie programowania LINQ to XML. W wielu przypadkach aplikacja nie będzie wymagać utworzenia dokumentu. Korzystając z XElement klasy, można wykonywać następujące czynności:
- Utwórz drzewo XML.
- Dodaj do niego inne drzewa XML.
- Zmodyfikuj drzewo XML.
- Zapisz go.
Korzystanie z dokumentu XDocument
Aby skonstruować obiekt , należy użyć konstrukcji funkcjonalnej XDocument, tak jak w przypadku konstruowania XElement obiektów.
Poniższy przykład tworzy XDocument obiekt i skojarzone z nim obiekty.
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")
W przykładzie są generowane następujące dane wyjściowe w 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.-->