Notes
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.
Cet article montre comment utiliser XPath et une requête LINQ to XML, en C# et Visual Basic, pour rechercher tous les éléments descendants qui ont un nom spécifique.
Exemple de recherche d’éléments descendants ayant un nom spécifique
Cet exemple montre comment utiliser une requête LINQ to XML et XPath pour rechercher tous les éléments descendants nommés Name
dans le document XML Exemple de fichier XML : Plusieurs commandes fournisseur (LINQ to XML). L'expression XPath est //Name
.
XDocument po = XDocument.Load("PurchaseOrders.xml");
// LINQ to XML query
IEnumerable<XElement> list1 = po.Root.Descendants("Name");
// XPath expression
IEnumerable<XElement> list2 = po.XPathSelectElements("//Name");
if (list1.Count() == list2.Count() &&
list1.Intersect(list2).Count() == list1.Count())
Console.WriteLine("Results are identical");
else
Console.WriteLine("Results differ");
foreach (XElement el in list1)
Console.WriteLine(el);
Dim po As XDocument = XDocument.Load("PurchaseOrders.xml")
' LINQ to XML query
Dim list1 As IEnumerable(Of XElement) = po...<Name>
' XPath expression
Dim list2 As IEnumerable(Of XElement) = po.XPathSelectElements("//Name")
If (list1.Count() = list2.Count() And _
list1.Intersect(list2).Count() = list1.Count()) Then
Console.WriteLine("Results are identical")
Else
Console.WriteLine("Results differ")
End If
For Each el As XElement In list1
Console.WriteLine(el)
Next
Cet exemple produit la sortie suivante :
Results are identical
<Name>Ellen Adams</Name>
<Name>Tai Yee</Name>
<Name>Cristian Osorio</Name>
<Name>Cristian Osorio</Name>
<Name>Jessica Arnold</Name>
<Name>Jessica Arnold</Name>