Přehled třídy XDocument
Třída XDocument obsahuje informace potřebné pro platný dokument XML, který obsahuje deklaraci XML, pokyny ke zpracování a komentáře.
Objekty musíte vytvořit XDocument pouze v případě, že potřebujete konkrétní funkce poskytované XDocument třídou. Za mnoha okolností můžete pracovat přímo s XElement. Práce přímo s XElement je jednodušší programovací model.
XDocument je odvozen od , XContainertakže může obsahovat podřízené uzly. XDocument Objekty však mohou mít pouze jeden podřízený XElement uzel. To odráží standard XML, že v dokumentu XML může být pouze jeden kořenový prvek.
Komponenty XDocument
Může XDocument obsahovat následující prvky:
- Jeden XDeclaration objekt. XDeclaration umožňuje určit relevantní části deklarace XML: verzi XML, kódování dokumentu a to, zda je dokument XML samostatný.
- Jeden XElement objekt. Tento objekt je kořenovým uzlem dokumentu XML.
- Libovolný počet XProcessingInstruction objektů Instrukce zpracování předává informace aplikaci, která zpracovává XML.
- Libovolný počet XComment objektů Komentáře budou na stejné úrovni jako kořenový prvek.
- Jeden XDocumentType pro DTD.
Při serializaci XDocument, i pokud XDocument.Declaration
je null
, výstup bude mít xml deklarace, pokud zapisovač má Writer.Settings.OmitXmlDeclaration
nastavenou false
(výchozí).
Ve výchozím nastavení nastaví LINQ to XML verzi na 1.0 a nastaví kódování na utf-8.
Použití XElement bez XDocument
Jak jsme již zmínili, XElement třída je hlavní třídou v programovacím rozhraní LINQ to XML. V mnoha případech aplikace nebude vyžadovat, abyste vytvořili dokument. Pomocí XElement třídy můžete:
- Vytvořte strom XML.
- Přidejte do něj další stromy XML.
- Upravte strom XML.
- Uložte ho.
Použití XDocument
Chcete-li vytvořit , XDocumentpoužít funkční konstrukce, stejně jako vy stavět XElement objekty.
Následující příklad vytvoří XDocument objekt a jeho přidružené obsažené objekty.
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")
Příklad vytvoří tento výstup v 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.-->