XPathExpression.AddSort Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
En cas de substitution dans une classe dérivée, trie les nœuds sélectionnés par l'expression XPath.
Surcharges
AddSort(Object, IComparer) |
En cas de substitution dans une classe dérivée, trie les nœuds sélectionnés par l'expression XPath en fonction de l'objet IComparer spécifié. |
AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType) |
En cas de remplacement dans une classe dérivée, trie les nœuds sélectionnés par l’expression XPath en fonction des paramètres fournis. |
AddSort(Object, IComparer)
- Source:
- XPathExpr.cs
- Source:
- XPathExpr.cs
- Source:
- XPathExpr.cs
En cas de substitution dans une classe dérivée, trie les nœuds sélectionnés par l'expression XPath en fonction de l'objet IComparer spécifié.
public:
abstract void AddSort(System::Object ^ expr, System::Collections::IComparer ^ comparer);
public abstract void AddSort (object expr, System.Collections.IComparer comparer);
abstract member AddSort : obj * System.Collections.IComparer -> unit
Public MustOverride Sub AddSort (expr As Object, comparer As IComparer)
Paramètres
- expr
- Object
Objet représentant la clé de tri. Il peut s’agir de la valeur string
du nœud ou d’un XPathExpression avec une expression XPath compilée.
- comparer
- IComparer
Objet IComparer qui fournit les comparaisons de type de données spécifiques pour déterminer si deux objets sont équivalents.
Exceptions
XPathExpression ou la clé de tri inclut un préfixe et soit un XmlNamespaceManager n’est pas fourni, soit le préfixe est introuvable dans le XmlNamespaceManager fourni.
Remarques
La AddSort méthode permet aux utilisateurs de trier les objets en fonction de leur type de données au lieu de la chaîne ou du nombre. L’objet IComparer fournit une implémentation de la méthode qui prend en charge le Compare tri sur des classes définies par l’utilisateur.
Dans l’exemple suivant, les livres sont triés par numéro ISBN, où isbn
est un objet qui implémente l’interface IComparer .
Dim expression As XPathExpression = navigator.Compile("bookstore/book")
Dim isbn As ISBN = New ISBN()
expression.AddSort("@ISBN", (IComparer)isbn)
XPathExpression expression = navigator.Compile("bookstore/book");
ISBN isbn = new ISBN();
expression.AddSort("@ISBN", (IComparer)isbn);
Voici les remarques importantes à prendre en compte lors de l’utilisation de la AddSort méthode .
L’ordre dans lequel les tris sont ajoutés fournit l’ordre des clés de tri.
Si ou la XPathExpression clé de tri nécessite une résolution d’espace de noms, vous devez utiliser la SetContext méthode pour fournir un pour la résolution d’espace XmlNamespaceManager de noms.
Si le XPathExpression n’inclut pas de préfixe, il est supposé que l’URI (Uniform Resource Identifier) de l’espace de noms est l’espace de noms vide. Si votre code XML inclut un espace de noms par défaut, vous devez toujours utiliser la SetContext méthode et fournir un qui contient un préfixe et un URI d’espace XmlNamespaceManager de noms pour gérer l’espace de noms par défaut.
Voir aussi
S’applique à
AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType)
- Source:
- XPathExpr.cs
- Source:
- XPathExpr.cs
- Source:
- XPathExpr.cs
En cas de remplacement dans une classe dérivée, trie les nœuds sélectionnés par l’expression XPath en fonction des paramètres fournis.
public:
abstract void AddSort(System::Object ^ expr, System::Xml::XPath::XmlSortOrder order, System::Xml::XPath::XmlCaseOrder caseOrder, System::String ^ lang, System::Xml::XPath::XmlDataType dataType);
public abstract void AddSort (object expr, System.Xml.XPath.XmlSortOrder order, System.Xml.XPath.XmlCaseOrder caseOrder, string lang, System.Xml.XPath.XmlDataType dataType);
abstract member AddSort : obj * System.Xml.XPath.XmlSortOrder * System.Xml.XPath.XmlCaseOrder * string * System.Xml.XPath.XmlDataType -> unit
Public MustOverride Sub AddSort (expr As Object, order As XmlSortOrder, caseOrder As XmlCaseOrder, lang As String, dataType As XmlDataType)
Paramètres
- expr
- Object
Objet représentant la clé de tri. Il peut s’agir de la valeur string
du nœud ou d’un XPathExpression avec une expression XPath compilée.
- order
- XmlSortOrder
Valeur XmlSortOrder indiquant l’ordre de tri.
- caseOrder
- XmlCaseOrder
Valeur XmlCaseOrder indiquant la façon dont les lettres majuscules et minuscules sont triées.
- lang
- String
Langue à utiliser pour la comparaison. Utilise la classe CultureInfo qui peut être passée à la méthode Compare pour les types de langue, par exemple, « us-en » pour l'anglais des États-Unis. Si une chaîne vide est spécifiée, l’environnement système est utilisé pour déterminer la CultureInfo.
- dataType
- XmlDataType
Valeur XmlDataType indiquant l’ordre de tri pour le type de données.
Exceptions
XPathExpression ou la clé de tri inclut un préfixe et soit un XmlNamespaceManager n’est pas fourni, soit le préfixe est introuvable dans le XmlNamespaceManager fourni.
Exemples
L’exemple suivant montre comment trier le document de livres par prix dans l’ordre décroissant.
Imports System.Xml
Imports System.Xml.XPath
Module Module1
Sub Main()
Dim doc As New XPathDocument("contosoBooks.xml")
Dim nav As XPathNavigator = doc.CreateNavigator()
Dim expr As XPathExpression
expr = nav.Compile("/bookstore/book")
expr.AddSort("price", XmlSortOrder.Descending, _
XmlCaseOrder.None, "", XmlDataType.Number)
Dim iterator As XPathNodeIterator = nav.Select(expr)
Do While iterator.MoveNext()
If (iterator.Current.HasChildren()) Then
Dim childIter As XPathNodeIterator = _
iterator.Current.SelectChildren(XPathNodeType.Element)
Do While childIter.MoveNext()
Console.WriteLine(childIter.Current.Value)
Loop
End If
Loop
End Sub
End Module
using System;
using System.Xml;
using System.Xml.XPath;
namespace SortBooks
{
class Program
{
static void Main(string[] args)
{
XPathDocument doc = new XPathDocument("contosoBooks.xml");
XPathNavigator nav = doc.CreateNavigator();
XPathExpression expr;
expr = nav.Compile("/bookstore/book");
expr.AddSort("price", XmlSortOrder.Descending,
XmlCaseOrder.None, "", XmlDataType.Number);
XPathNodeIterator iterator = nav.Select(expr);
while (iterator.MoveNext())
{
if (iterator.Current.HasChildren)
{
XPathNodeIterator childIter =
iterator.Current.SelectChildren(XPathNodeType.Element);
while (childIter.MoveNext())
{
Console.WriteLine(childIter.Current.Value);
}
}
}
}
}
}
L'exemple prend le fichier books.xml
comme entrée.
<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
Remarques
L’ordre dans lequel les tris sont ajoutés fournit l’ordre des clés de tri.
Si ou la XPathExpression clé de tri nécessite une résolution d’espace de noms, vous devez utiliser la SetContext méthode pour fournir un pour la résolution d’espace XmlNamespaceManager de noms.
Si le XPathExpression n’inclut pas de préfixe, il est supposé que l’URI (Uniform Resource Identifier) de l’espace de noms est l’espace de noms vide. Si votre code XML inclut un espace de noms par défaut, vous devez toujours utiliser la SetContext méthode et fournir un qui contient un préfixe et un URI d’espace XmlNamespaceManager de noms pour gérer l’espace de noms par défaut.
Voir aussi
- XmlSortOrder
- XmlCaseOrder
- XmlDataType
- XmlNamespaceManager
- CultureInfo
- Compare
- SetContext(XmlNamespaceManager)