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
| Nom | Description |
|---|---|
| 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 spécifié IComparer . |
| AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType) |
En cas de substitution 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)
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 spécifié IComparer .
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 string valeur du nœud ou d’un XPathExpression objet avec une expression XPath compilée.
- comparer
- IComparer
Objet IComparer qui fournit les comparaisons de types de données spécifiques pour comparer deux objets à des fins d’équivalence.
Exceptions
La XPathExpression clé ou le tri inclut un préfixe et un XmlNamespaceManager n’est pas fourni, ou le préfixe est introuvable dans le fichier fourni XmlNamespaceManager.
Remarques
La AddSort méthode permet aux utilisateurs de trier les objets selon leur type de données au lieu d’une chaîne ou d’un nombre. L’objet IComparer fournit une implémentation de la méthode qui prend en charge le Compare tri sur les 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);
Les remarques suivantes sont 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 de clé de tri.
Si la XPathExpression clé de tri nécessite une résolution d’espace de noms, vous devez utiliser la SetContext méthode pour fournir une résolution d’espace XmlNamespaceManager de noms.
Si le XPathExpression préfixe 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 XmlNamespaceManager URI contenant un préfixe et un URI d’espace de noms pour gérer l’espace de noms par défaut.
Voir aussi
S’applique à
AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType)
En cas de substitution 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 string valeur du nœud ou d’un XPathExpression objet avec une expression XPath compilée.
- order
- XmlSortOrder
Valeur XmlSortOrder indiquant l’ordre de tri.
- caseOrder
- XmlCaseOrder
Valeur XmlCaseOrder indiquant comment trier des majuscules et des lettres minuscules.
- lang
- String
Langue à utiliser pour la comparaison. Utilise la CultureInfo classe qui peut être passée à la Compare méthode pour les types de langue, par exemple , «us-en» pour l’anglais américain. Si une chaîne vide est spécifiée, l’environnement système est utilisé pour déterminer le CultureInfo.
- dataType
- XmlDataType
Valeur XmlDataType indiquant l’ordre de tri du type de données.
Exceptions
La XPathExpression clé ou le tri inclut un préfixe et un XmlNamespaceManager n’est pas fourni, ou le préfixe est introuvable dans le fichier fourni XmlNamespaceManager.
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 de clé de tri.
Si la XPathExpression clé de tri nécessite une résolution d’espace de noms, vous devez utiliser la SetContext méthode pour fournir une résolution d’espace XmlNamespaceManager de noms.
Si le XPathExpression préfixe 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 XmlNamespaceManager URI contenant un préfixe et un URI d’espace de noms pour gérer l’espace de noms par défaut.
Voir aussi
- XmlSortOrder
- XmlCaseOrder
- XmlDataType
- XmlNamespaceManager
- CultureInfo
- Compare
- SetContext(XmlNamespaceManager)