Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les attributs sont des paires nom-valeur associées à un élément. La XAttribute classe 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 récupérer des collections d’entre elles 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 effectuez une itération dans les attributs, vous les voyez dans le même ordre qu’ils ont été ajoutés.
Constructeur XAttribute
Le constructeur suivant de la XAttribute classe est celui que vous utiliserez le plus souvent :
| Constructeur | Descriptif |
|---|---|
XAttribute(XName name, object content) |
Crée un objet XAttribute. L’argument name spécifie le nom de l’attribut ; 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 génère la sortie suivante :
<Phone Type="Home">555-555-5555</Phone>
Exemple : Construction fonctionnelle d’attributs
Vous pouvez créer des objets XAttribute en même temps que celle des 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 génère 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 des différences entre les attributs et les éléments. XAttribute les objets ne sont pas des nœuds dans l’arborescence XML. Il s’agit de paires nom-valeur associées à un élément XML. Contrairement au modèle DOM (Document Object Model), cela reflète plus étroitement la structure du code XML. Bien que XAttribute les objets ne soient pas réellement des nœuds dans l’arborescence XML, l’utilisation d’objets XAttribute est similaire à celle des XElement objets.
Cette distinction est principalement importante pour les développeurs qui écrivent du code qui fonctionnent avec des arborescences XML au niveau du nœud. De nombreux développeurs ne seront pas concernés par cette distinction.