Comment trier des éléments (LINQ to XML)
Vous pouvez trier vos résultats lorsque vous interrogez XML. Cet article fournit deux exemples : le premier trie les résultats pour XML qui n’est pas dans un espace de noms, et le second effectue le même tri, mais pour le code XML qui est dans un espace de noms.
Exemple : Écrire une requête qui trie ses résultats
Cet exemple montre comment écrire une requête qui trie ses résultats. Il utilise le document XML Exemple de fichier XML : données numériques.
XElement root = XElement.Load("Data.xml");
IEnumerable<decimal> prices =
from el in root.Elements("Data")
let price = (decimal)el.Element("Price")
orderby price
select price;
foreach (decimal el in prices)
Console.WriteLine(el);
Dim root As XElement = XElement.Load("Data.xml")
Dim prices As IEnumerable(Of Decimal) = _
From el In root.<Data> _
Let price = Convert.ToDecimal(el.<Price>.Value) _
Order By (price) _
Select price
For Each el As Decimal In prices
Console.WriteLine(el)
Next
Cet exemple produit la sortie suivante :
0.99
4.95
6.99
24.50
29.00
66.00
89.99
Exemple : Écrire une requête dans un espace de noms qui trie ses résultats
L’exemple suivant montre la même requête pour XML qui se trouve dans un espace de noms. Il utilise un document XML Exemple de fichier XML : données numériques dans un espace de noms.
Pour plus d’informations, consultez vue d’ensemble des espaces de noms.
XElement root = XElement.Load("DataInNamespace.xml");
XNamespace aw = "http://www.adatum.com";
IEnumerable<decimal> prices =
from el in root.Elements(aw + "Data")
let price = (decimal)el.Element(aw + "Price")
orderby price
select price;
foreach (decimal el in prices)
Console.WriteLine(el);
Imports <xmlns='http://www.adatum.com'>
Module Module1
Sub Main()
Dim root As XElement = XElement.Load("DataInNamespace.xml")
Dim prices As IEnumerable(Of Decimal) = _
From el In root.<Data> _
Let price = Convert.ToDecimal(el.<Price>.Value) _
Order By (price) _
Select price
For Each el As Decimal In prices
Console.WriteLine(el)
Next
End Sub
End Module
Cet exemple produit la sortie suivante :
0.99
4.95
6.99
24.50
29.00
66.00
89.99