XPathExpression.AddSort Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Při přepsání v odvozené třídě seřadí uzly vybrané výrazem XPath.
Přetížení
AddSort(Object, IComparer) |
Při přepsání v odvozené třídě seřadí uzly vybrané výrazem XPath podle zadaného IComparer objektu. |
AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType) |
Při přepsání v odvozené třídě seřadí uzly vybrané výrazem XPath podle zadaných parametrů. |
AddSort(Object, IComparer)
Při přepsání v odvozené třídě seřadí uzly vybrané výrazem XPath podle zadaného IComparer objektu.
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)
Parametry
- expr
- Object
Objekt představující klíč řazení Může se jednat o string
hodnotu uzlu nebo XPathExpression objektu s kompilovaným výrazem XPath.
- comparer
- IComparer
Objekt IComparer , který poskytuje porovnání konkrétního datového typu pro porovnání dvou objektů pro ekvivalenci.
Výjimky
Klíč XPathExpression řazení obsahuje předponu a buď XmlNamespaceManager není zadána, nebo předponu nelze nalézt v zadaném souboru XmlNamespaceManager.
Poznámky
Metoda AddSort umožňuje uživatelům řadit objekty podle jejich datového typu místo řetězce nebo čísla. Objekt IComparer poskytuje implementaci metody, která podporuje řazení u uživatelem definovaných Compare tříd.
V následujícím příkladu jsou knihy seřazené podle čísla ISBN, kde isbn
je objekt, který implementuje IComparer rozhraní.
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);
Při používání AddSort metody je potřeba vzít v úvahu následující důležité poznámky.
Pořadí, ve kterém se řazení přidá, poskytuje pořadí klíčů řazení.
XPathExpression Pokud klíč řazení vyžaduje překlad oboru názvů, musíte použít metodu SetContext XmlNamespaceManager k zadání rozlišení oboru názvů.
XPathExpression Pokud neobsahuje předponu, předpokládá se, že obor názvů Uniform Resource Identifier (URI) je prázdný obor názvů. Pokud váš XML obsahuje výchozí obor názvů, musíte použít metodu SetContext a zadat XmlNamespaceManager , která obsahuje předponu a identifikátor URI oboru názvů pro zpracování výchozího oboru názvů.
Viz také
Platí pro
AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType)
Při přepsání v odvozené třídě seřadí uzly vybrané výrazem XPath podle zadaných parametrů.
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)
Parametry
- expr
- Object
Objekt představující klíč řazení Může se jednat o string
hodnotu uzlu nebo XPathExpression objektu s kompilovaným výrazem XPath.
- order
- XmlSortOrder
Hodnota XmlSortOrder označující pořadí řazení.
- caseOrder
- XmlCaseOrder
Hodnota XmlCaseOrder označující, jak řadit velká a malá písmena.
- lang
- String
Jazyk, který se má použít k porovnání. CultureInfo Používá třídu, která se dá předat Compare metodě pro typy jazyků, například "us-en" pro angličtinu USA. Pokud je zadán prázdný řetězec, použije se systémové prostředí k určení CultureInfo.
- dataType
- XmlDataType
Hodnota XmlDataType označující pořadí řazení pro datový typ.
Výjimky
Klíč XPathExpression řazení obsahuje předponu a buď XmlNamespaceManager není zadána, nebo předponu nelze nalézt v zadaném souboru XmlNamespaceManager.
Příklady
Následující příklad ukazuje, jak seřadit knihy dokument podle ceny v sestupném pořadí.
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);
}
}
}
}
}
}
Příklad vezme books.xml
soubor jako vstup.
<?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>
Poznámky
Pořadí, ve kterém se řazení přidá, poskytuje pořadí klíčů řazení.
XPathExpression Pokud klíč řazení vyžaduje překlad oboru názvů, musíte použít metodu SetContext XmlNamespaceManager k zadání rozlišení oboru názvů.
XPathExpression Pokud neobsahuje předponu, předpokládá se, že obor názvů Uniform Resource Identifier (URI) je prázdný obor názvů. Pokud váš XML obsahuje výchozí obor názvů, musíte použít metodu SetContext a zadat XmlNamespaceManager , která obsahuje předponu a identifikátor URI oboru názvů pro zpracování výchozího oboru názvů.
Viz také
- XmlSortOrder
- XmlCaseOrder
- XmlDataType
- XmlNamespaceManager
- CultureInfo
- Compare
- SetContext(XmlNamespaceManager)