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.
Vue d'ensemble
L'utilisation des attributs dans LINQ to XML est semblable à l'utilisation des é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 a une apparence très semblable à 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.
Le constructeur XAttribute
Le constructeur suivant de la classe XAttribute est celui que vous utiliserez le plus souvent :
Constructeur |
Description |
---|---|
XAttribute(XName name, object content) |
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. |
Création d'un élément avec un attribut
Le code suivant illustre 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);
Avec Visual Basic, vous pouvez utiliser des littéraux XML :
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>
Construction fonctionnelle d'attributs
Vous pouvez construire des objets XAttribute en ligne avec la construction d'objets XElement de la manière suivante :
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 de l'arborescence XML, l'utilisation d'objets XAttribute s'apparente à 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 n'auront pas à se sourcier de cette distinction.