XPathExpression.AddSort Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Quando sottoposto a override in una classe derivata, ordina i nodi selezionati mediante l'espressione XPath.
Overload
AddSort(Object, IComparer) |
Quando sottoposto a override in una classe derivata, ordina i nodi selezionati mediante l'espressione XPath in base all'oggetto IComparer specificato. |
AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType) |
Quando è sottoposto a override in una classe derivata, ordina i nodi selezionati dall'espressione XPath in base ai parametri specificati. |
AddSort(Object, IComparer)
- Origine:
- XPathExpr.cs
- Origine:
- XPathExpr.cs
- Origine:
- XPathExpr.cs
Quando sottoposto a override in una classe derivata, ordina i nodi selezionati mediante l'espressione XPath in base all'oggetto IComparer specificato.
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)
Parametri
- expr
- Object
Oggetto che rappresenta la chiave di ordinamento. Può essere il valore string
del nodo o un oggetto XPathExpression con un'espressione XPath compilata.
- comparer
- IComparer
Oggetto IComparer che fornisce i confronti di tipi di dati specifici per il confronto di due oggetti allo scopo di verificarne l'equivalenza.
Eccezioni
L'oggetto XPathExpression o la chiave di ordinamento includono un prefisso e un oggetto XmlNamespaceManager non viene specificato oppure non è possibile trovare il prefisso nell'oggetto XmlNamespaceManager indicato.
Commenti
Il AddSort metodo consente agli utenti di ordinare gli oggetti in base al tipo di dati anziché per stringa o numero. L'oggetto IComparerCompare fornisce un'implementazione del metodo che supporta l'ordinamento sulle classi definite dall'utente.
Nell'esempio seguente i libri vengono ordinati in base al numero ISBN, dove isbn
è un oggetto che implementa l'interfaccia 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);
Di seguito sono riportate note importanti da considerare quando si usa il AddSort metodo .
L'ordine in cui vengono aggiunti gli ordinamenti fornisce l'ordine della chiave di ordinamento.
Se la XPathExpression chiave di ordinamento richiede la risoluzione dello spazio dei nomi, è necessario usare il SetContext metodo per fornire una XmlNamespaceManager risoluzione dello spazio dei nomi.
Se non XPathExpression include un prefisso, si presuppone che lo spazio dei nomi Uniform Resource Identifier (URI) sia lo spazio dei nomi vuoto. Se il codice XML include uno spazio dei nomi predefinito, è comunque necessario usare il SetContext metodo e specificare un XmlNamespaceManager oggetto contenente un prefisso e un URI dello spazio dei nomi per gestire lo spazio dei nomi predefinito.
Vedi anche
Si applica a
AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType)
- Origine:
- XPathExpr.cs
- Origine:
- XPathExpr.cs
- Origine:
- XPathExpr.cs
Quando è sottoposto a override in una classe derivata, ordina i nodi selezionati dall'espressione XPath in base ai parametri specificati.
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)
Parametri
- expr
- Object
Oggetto che rappresenta la chiave di ordinamento. Può essere il valore string
del nodo o un oggetto XPathExpression con un'espressione XPath compilata.
- order
- XmlSortOrder
Valore XmlSortOrder che indica l'ordinamento.
- caseOrder
- XmlCaseOrder
Valore XmlCaseOrder che indica la modalità di ordinamento di lettere maiuscole e lettere minuscole.
- lang
- String
Lingua da usare per il confronto. Utilizza la classe CultureInfo che può essere passata al metodo Compare per indicare i tipi di lingua, ad esempio "us-en" per Inglese Stati Uniti. Se viene specificata una stringa vuota, l'ambiente di sistema viene usato per determinare l'oggetto CultureInfo.
- dataType
- XmlDataType
Valore XmlDataType che indica l'ordinamento per il tipo di dati.
Eccezioni
L'oggetto XPathExpression o la chiave di ordinamento includono un prefisso e un oggetto XmlNamespaceManager non viene specificato oppure non è possibile trovare il prefisso nell'oggetto XmlNamespaceManager indicato.
Esempio
Nell'esempio seguente viene illustrato come ordinare i libri in base al prezzo in ordine decrescente.
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);
}
}
}
}
}
}
Nell'esempio il file books.xml
viene considerato come input.
<?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>
Commenti
L'ordine in cui vengono aggiunti gli ordinamenti fornisce l'ordine della chiave di ordinamento.
Se la XPathExpression chiave di ordinamento richiede la risoluzione dello spazio dei nomi, è necessario usare il SetContext metodo per fornire una XmlNamespaceManager risoluzione dello spazio dei nomi.
Se non XPathExpression include un prefisso, si presuppone che lo spazio dei nomi Uniform Resource Identifier (URI) sia lo spazio dei nomi vuoto. Se il codice XML include uno spazio dei nomi predefinito, è comunque necessario usare il SetContext metodo e specificare un XmlNamespaceManager oggetto contenente un prefisso e un URI dello spazio dei nomi per gestire lo spazio dei nomi predefinito.
Vedi anche
- XmlSortOrder
- XmlCaseOrder
- XmlDataType
- XmlNamespaceManager
- CultureInfo
- Compare
- SetContext(XmlNamespaceManager)