Partager via


Vue d’ensemble de la classe XAttribute

Les attributs sont des paires nom-valeur associées à un élément. La classe XAttribute représente des attributs XML.

L’utilisation d’attributs dans LINQ to XML est similaire à l’utilisation d’éléments. Leurs constructeurs sont similaires. Les méthodes que vous utilisez pour en récupérer des collections sont similaires. Une expression de requête LINQ pour une collection d’attributs ressemble à une expression de requête LINQ pour une collection d’éléments.

L'ordre dans lequel les attributs ont été ajoutés à un élément est conservé. Autrement dit, lorsque vous itérez au sein des attributs, vous les voyez dans l'ordre dans lequel ils ont été ajoutés.

Constructeur XAttribute

Le constructeur suivant de la classe XAttribute est celui que vous utiliserez le plus souvent :

Constructeur Description
XAttribute(XName name, object content) Elle crée un objet XAttribute. L'argument name spécifie le nom de l'attribut ; l'argument content spécifie le contenu de l'attribut.

Exemple : Créer un élément avec un attribut

L’exemple suivant montre la tâche courante de création d’un élément qui contient un attribut.

XElement phone = new XElement("Phone",
    new XAttribute("Type", "Home"),
    "555-555-5555");
Console.WriteLine(phone);
Dim phone As XElement = <Phone Type="Home">555-555-5555</Phone>
Console.WriteLine(phone)

Cet exemple produit la sortie suivante :

<Phone Type="Home">555-555-5555</Phone>

Exemple : Construction fonctionnelle d’attributs

Vous pouvez construire XAttribute objets en ligne avec la construction d’objets XElement, comme illustré dans l’exemple suivant :

XElement c = new XElement("Customers",
    new XElement("Customer",
        new XElement("Name", "John Doe"),
        new XElement("PhoneNumbers",
            new XElement("Phone",
                new XAttribute("type", "home"),
                "555-555-5555"),
            new XElement("Phone",
                new XAttribute("type", "work"),
                "666-666-6666")
        )
    )
);
Console.WriteLine(c);
Dim c As XElement = _
    <Customers>
        <Customer>
            <Name>John Doe</Name>
            <PhoneNumbers>
                <Phone type="home">555-555-5555</Phone>
                <Phone type="work">666-666-6666</Phone>
            </PhoneNumbers>
        </Customer>
    </Customers>
Console.WriteLine(c)

Cet exemple produit la sortie suivante :

<Customers>
  <Customer>
    <Name>John Doe</Name>
    <PhoneNumbers>
      <Phone type="home">555-555-5555</Phone>
      <Phone type="work">666-666-6666</Phone>
    </PhoneNumbers>
  </Customer>
</Customers>

Les attributs ne sont pas des nœuds

Il existe certaines différences entre les attributs et les éléments. Les objets XAttribute ne sont pas des nœuds dans l’arborescence XML. Il s’agit de paires nom-valeur associées à un élément XML. Par opposition au modèle DOM (Document Objet Model), cela reflète plus étroitement la structure du langage XML. Bien que les objets XAttribute ne soient pas réellement des nœuds dans l’arborescence XML, l’utilisation d’objets XAttribute est similaire à l’utilisation d’objets XElement .

Cette distinction ne revêt une importance que pour les développeurs qui écrivent du code qui interagit avec des arborescences XML au niveau nœud. De nombreux développeurs ne seront pas concernés par cette distinction.

Voir aussi