XPathExpression.AddSort Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Wanneer deze wordt overschreven in een afgeleide klasse, sorteert u de knooppunten die zijn geselecteerd door de XPath-expressie.
Overloads
| Name | Description |
|---|---|
| AddSort(Object, IComparer) |
Wanneer deze worden overschreven in een afgeleide klasse, sorteert u de knooppunten die zijn geselecteerd door de XPath-expressie op basis van het opgegeven IComparer object. |
| AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType) |
Wanneer deze worden overschreven in een afgeleide klasse, sorteert u de knooppunten die zijn geselecteerd door de XPath-expressie op basis van de opgegeven parameters. |
AddSort(Object, IComparer)
- Bron:
- XPathExpr.cs
- Bron:
- XPathExpr.cs
- Bron:
- XPathExpr.cs
- Bron:
- XPathExpr.cs
- Bron:
- XPathExpr.cs
Wanneer deze worden overschreven in een afgeleide klasse, sorteert u de knooppunten die zijn geselecteerd door de XPath-expressie op basis van het opgegeven IComparer object.
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)
Parameters
- expr
- Object
Een object dat de sorteersleutel vertegenwoordigt. Dit kan de string waarde zijn van het knooppunt of een XPathExpression object met een gecompileerde XPath-expressie.
- comparer
- IComparer
Een IComparer object dat de specifieke gegevenstypevergelijkingen biedt voor het vergelijken van twee objecten voor gelijkwaardigheid.
Uitzonderingen
De XPathExpression of sorteersleutel bevat een voorvoegsel en een XmlNamespaceManager is niet opgegeven, of het voorvoegsel kan niet worden gevonden in de opgegeven XmlNamespaceManager.
Opmerkingen
Met de AddSort methode kunnen gebruikers objecten sorteren op hun gegevenstype in plaats van op tekenreeks of getal. Het IComparer object biedt een implementatie van de methode die ondersteuning biedt voor sorteren op door de Compare gebruiker gedefinieerde klassen.
In het volgende voorbeeld worden de boeken gesorteerd op ISBN-nummer, waarbij isbn een object is dat de IComparer interface implementeert.
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);
Hier volgen belangrijke opmerkingen bij het gebruik van de AddSort methode.
De volgorde waarin de sorteringen worden toegevoegd, bevat de sorteersleutelvolgorde.
Als voor de XPathExpression sorteersleutel naamruimteomzetting is vereist, moet u de SetContext methode gebruiken om een XmlNamespaceManager naamruimteomzetting op te geven.
Als het XPathExpression geen voorvoegsel bevat, wordt ervan uitgegaan dat de naamruimte Uniform Resource Identifier (URI) de lege naamruimte is. Als uw XML een standaardnaamruimte bevat, moet u nog steeds de SetContext methode gebruiken en een XmlNamespaceManager URI met een voorvoegsel en naamruimte-URI opgeven om de standaardnaamruimte te verwerken.
Zie ook
Van toepassing op
AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType)
- Bron:
- XPathExpr.cs
- Bron:
- XPathExpr.cs
- Bron:
- XPathExpr.cs
- Bron:
- XPathExpr.cs
- Bron:
- XPathExpr.cs
Wanneer deze worden overschreven in een afgeleide klasse, sorteert u de knooppunten die zijn geselecteerd door de XPath-expressie op basis van de opgegeven parameters.
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)
Parameters
- expr
- Object
Een object dat de sorteersleutel vertegenwoordigt. Dit kan de string waarde zijn van het knooppunt of een XPathExpression object met een gecompileerde XPath-expressie.
- order
- XmlSortOrder
Een XmlSortOrder waarde die de sorteervolgorde aangeeft.
- caseOrder
- XmlCaseOrder
Een XmlCaseOrder waarde die aangeeft hoe u hoofdletters en kleine letters sorteert.
- lang
- String
De taal die moet worden gebruikt voor vergelijking. Gebruikt de CultureInfo klasse die kan worden doorgegeven aan de methode voor de taaltypen, bijvoorbeeld 'us-en' voor Engels in de Compare V.S. . Als er een lege tekenreeks is opgegeven, wordt de systeemomgeving gebruikt om de CultureInfo.
- dataType
- XmlDataType
Een XmlDataType waarde die de sorteervolgorde voor het gegevenstype aangeeft.
Uitzonderingen
De XPathExpression of sorteersleutel bevat een voorvoegsel en een XmlNamespaceManager is niet opgegeven, of het voorvoegsel kan niet worden gevonden in de opgegeven XmlNamespaceManager.
Voorbeelden
In het volgende voorbeeld ziet u hoe u het boekendocument sorteert op prijs in aflopende volgorde.
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);
}
}
}
}
}
}
In het voorbeeld wordt het books.xml bestand als invoer gebruikt.
<?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>
Opmerkingen
De volgorde waarin de sorteringen worden toegevoegd, bevat de sorteersleutelvolgorde.
Als voor de XPathExpression sorteersleutel naamruimteomzetting is vereist, moet u de SetContext methode gebruiken om een XmlNamespaceManager naamruimteomzetting op te geven.
Als het XPathExpression geen voorvoegsel bevat, wordt ervan uitgegaan dat de naamruimte Uniform Resource Identifier (URI) de lege naamruimte is. Als uw XML een standaardnaamruimte bevat, moet u nog steeds de SetContext methode gebruiken en een XmlNamespaceManager URI met een voorvoegsel en naamruimte-URI opgeven om de standaardnaamruimte te verwerken.
Zie ook
- XmlSortOrder
- XmlCaseOrder
- XmlDataType
- XmlNamespaceManager
- CultureInfo
- Compare
- SetContext(XmlNamespaceManager)