Partager via


Vue d'ensemble de la classe XDocument

Cette rubrique présente la classe XDocument.

Vue d'ensemble de la classe XDocument

La classe XDocument contient les informations nécessaires pour un document XML valide.Cela inclut une déclaration XML, des instructions de traitement et des commentaires.

Notez que la création d'objets XDocument est nécessaire uniquement si vous avez besoin de la fonctionnalité spécifique fournie par la classe XDocument.Dans de nombreux cas, vous pouvez travailler directement avec XElement.L'utilisation directe de l'objet XElement est un modèle de programmation plus simple.

XDocument dérive de XContainer.Par conséquent, il peut contenir des nœuds enfants.Toutefois, les objets XDocument ne peuvent avoir qu'un seul nœud XElement enfant.Cela reflète la norme XML selon laquelle il ne doit y avoir qu'un seul élément racine dans un document XML.

Composants de XDocument

Un objet XDocument peut contenir les éléments suivants :

  • Un objet XDeclaration.XDeclaration vous permet de spécifier les parties pertinentes d'une déclaration XML : la version XML, l'encodage du document et si le document XML est autonome.

  • Un objet XElement.Il s'agit du nœud racine du document XML.

  • Une quantité quelconque d'objets XProcessingInstruction.Une instruction de traitement communique des informations à une application qui traite le code XML.

  • Une quantité quelconque d'objets XComment.Les commentaires seront des frères de l'élément racine.L'objet XComment ne peut pas être le premier argument de la liste, car un document XML valide ne peut pas commencer par un commentaire.

  • Un objet XDocumentType pour le DTD.

Lorsque vous sérialisez un objet XDocument, même si XDocument.Declaration a la valeur null, la sortie aura une déclaration XML à condition que la propriété Writer.Settings.OmitXmlDeclaration du writer ait la valeur false (valeur par défaut).

Par défaut, LINQ to XML définit la version à « 1.0 » l'encodage à « utf-8 ».

Utilisation de XElement sans XDocument

Comme mentionné précédemment, la classe XElement est la classe principale dans l'interface de programmation LINQ to XML. Dans de nombreux cas, votre application ne nécessitera pas la création d'un document.L'utilisation de la classe XElement vous permet de créer une arborescence XML, de la modifier, de l'enregistrer et d'y ajouter d'autres arborescences XML.

Utilisation de XDocument

Pour construire un objet XDocument, utilisez la construction fonctionnelle, comme pour construire des objets XElement.

Le code suivant crée un objet XDocument et ses objets contenus associés.

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")

Lorsque vous examinez le fichier test.xml, vous obtenez la sortie suivante :

<?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.-->

Voir aussi

Concepts

Vue d'ensemble de la programmation LINQ to XML