XDocument – Přehled třídyXDocument class overview

XDocumentTřída obsahuje informace potřebné pro platný dokument XML, který obsahuje deklaraci XML, instrukce pro zpracování a komentáře.The XDocument class contains the information necessary for a valid XML document, which includes an XML declaration, processing instructions, and comments.

Objekty stačí vytvořit pouze XDocument v případě, že požadujete konkrétní funkce poskytované XDocument třídou.You only have to create XDocument objects if you require the specific functionality provided by the XDocument class. V mnoha případech můžete pracovat přímo s XElement .In many circumstances, you can work directly with XElement. Práce přímo s nástrojem XElement je jednodušší programovací model.Working directly with XElement is a simpler programming model.

XDocument je odvozen z XContainer , takže může obsahovat podřízené uzly.XDocument derives from XContainer, so it can contain child nodes. Nicméně XDocument objekty mohou mít pouze jeden podřízený XElement uzel.However, XDocument objects can have only one child XElement node. To odráží standard XML, že v dokumentu XML může být pouze jeden kořenový element.This reflects the XML standard that there can be only one root element in an XML document.

Komponenty XDocumentComponents of XDocument

XDocumentMůže obsahovat následující prvky:An XDocument can contain the following elements:

  • Jeden XDeclaration objekt.One XDeclaration object. XDeclaration umožňuje zadat relevantní části deklarace XML: verze XML, kódování dokumentu a zda je dokument XML samostatný.XDeclaration enables you to specify the pertinent parts of an XML declaration: the XML version, the encoding of the document, and whether the XML document is standalone.
  • Jeden XElement objekt.One XElement object. Tento objekt je kořenovým uzlem dokumentu XML.This object is the root node of the XML document.
  • Libovolný počet XProcessingInstruction objektů.Any number of XProcessingInstruction objects. Instrukce pro zpracování sděluje informace aplikaci, která zpracovává XML.A processing instruction communicates information to an application that processes the XML.
  • Libovolný počet XComment objektů.Any number of XComment objects. Komentáře budou na stejné úrovni jako kořenový element.The comments will be siblings to the root element. XCommentObjekt nemůže být prvním argumentem v seznamu, protože není platný pro dokument XML, aby začal s komentářem.The XComment object can't be the first argument in the list, because it's not valid for an XML document to start with a comment.
  • Jednu XDocumentType pro DTD.One XDocumentType for the DTD.

Při serializaci XDocument , i když XDocument.Declaration je null , výstup bude obsahovat deklaraci XML, pokud zapisovač je Writer.Settings.OmitXmlDeclaration nastaven na false (výchozí).When you serialize an XDocument, even if XDocument.Declaration is null, the output will have an XML declaration if the writer has Writer.Settings.OmitXmlDeclaration set to false (the default).

Ve výchozím nastavení LINQ to XML nastaví verzi na "1,0" a nastaví kódování na UTF-8.By default, LINQ to XML sets the version to "1.0", and sets the encoding to "utf-8".

Použít XElement bez XDocumentUse XElement without XDocument

Jak už jsme uvedli, XElement Třída je hlavní třídou v rozhraní LINQ to XML Programming Interface.As previously mentioned, the XElement class is the main class in the LINQ to XML programming interface. V mnoha případech vaše aplikace nevyžaduje, abyste vytvořili dokument.In many cases, your application won't require that you create a document. Pomocí XElement třídy můžete:By using the XElement class, you can:

  • Vytvořte strom XML.Create an XML tree.
  • Přidejte do ní další stromy XML.Add other XML trees to it.
  • Upravte strom XML.Modify the XML tree.
  • Schéma uložte.Save it.

Použít XDocumentUse XDocument

Chcete-li vytvořit XDocument , použijte funkční konstrukci stejným způsobem jako při vytváření XElement objektů.To construct an XDocument, use functional construction, just like you do to construct XElement objects.

Následující příklad vytvoří XDocument objekt a jeho přidružené objekty v kontejneru.The following example creates an XDocument object and its associated contained objects.

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:The example produces this output in 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.-->

Viz takéSee also