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 dall'espressione XPath.
Overload
| Nome | Descrizione |
|---|---|
| AddSort(Object, IComparer) |
Quando sottoposto a override in una classe derivata, ordina i nodi selezionati dall'espressione XPath in base all'oggetto specificato IComparer . |
| 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 forniti. |
AddSort(Object, IComparer)
- Origine:
- XPathExpr.cs
- Origine:
- XPathExpr.cs
- 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 all'oggetto specificato 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)
Parametri
- expr
- Object
Oggetto che rappresenta la chiave di ordinamento. Può trattarsi del string valore del nodo o di un XPathExpression oggetto con un'espressione XPath compilata.
- comparer
- IComparer
Oggetto IComparer che fornisce i confronti di tipi di dati specifici per confrontare due oggetti per l'equivalenza.
Eccezioni
La XPathExpression chiave di ordinamento o include un prefisso e non viene fornito un XmlNamespaceManager oggetto oppure non è possibile trovare il prefisso nell'oggetto fornito XmlNamespaceManager.
Commenti
Il AddSort metodo consente agli utenti di ordinare gli oggetti in base al tipo di dati anziché per stringa o numero. L'oggetto IComparer fornisce un'implementazione del metodo che supporta l'ordinamento Compare in 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'ordinamento della chiave.
Se o la XPathExpression chiave di ordinamento richiede la risoluzione dello spazio dei nomi, è necessario usare il SetContext metodo per fornire un oggetto XmlNamespaceManager per la risoluzione dello spazio dei nomi.
XPathExpression Se non 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
- 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 forniti.
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ò trattarsi del string valore del nodo o di un XPathExpression oggetto con un'espressione XPath compilata.
- order
- XmlSortOrder
Valore XmlSortOrder che indica l'ordinamento.
- caseOrder
- XmlCaseOrder
Valore XmlCaseOrder che indica come ordinare lettere maiuscole e minuscole.
- lang
- String
Lingua da utilizzare per il confronto. Usa la CultureInfo classe che può essere passata al Compare metodo per i tipi di lingua, ad esempio "us-en" per l'inglese statunitense. 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
La XPathExpression chiave di ordinamento o include un prefisso e non viene fornito un XmlNamespaceManager oggetto oppure non è possibile trovare il prefisso nell'oggetto fornito XmlNamespaceManager.
Esempio
Nell'esempio seguente viene illustrato come ordinare il documento dei 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);
}
}
}
}
}
}
L'esempio accetta il file books.xml 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'ordinamento della chiave.
Se o la XPathExpression chiave di ordinamento richiede la risoluzione dello spazio dei nomi, è necessario usare il SetContext metodo per fornire un oggetto XmlNamespaceManager per la risoluzione dello spazio dei nomi.
XPathExpression Se non 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)