XPathExpression.AddSort Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Cuando se reemplaza en una clase derivada, ordena los nodos seleccionados por la expresión XPath.
Sobrecargas
AddSort(Object, IComparer) |
Cuando se reemplaza en una clase derivada, ordena los nodos seleccionados por la expresión XPath según el objeto IComparer especificado. |
AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType) |
Cuando se reemplaza en una clase derivada, ordena los nodos seleccionados por la expresión XPath según los parámetros proporcionados. |
AddSort(Object, IComparer)
- Source:
- XPathExpr.cs
- Source:
- XPathExpr.cs
- Source:
- XPathExpr.cs
Cuando se reemplaza en una clase derivada, ordena los nodos seleccionados por la expresión XPath según el objeto IComparer especificado.
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)
Parámetros
- expr
- Object
Objeto que representa el criterio de ordenación. Puede ser el valor string
del nodo o un objeto XPathExpression con una expresión XPath compilada.
- comparer
- IComparer
Un objeto IComparer que proporciona las comparaciones de tipo de datos específicas para comprobar si dos objetos son equivalentes.
Excepciones
La XPathExpression o el criterio de ordenación incluye un prefijo, y o bien no se proporciona un XmlNamespaceManager, o bien el prefijo no se encuentra en el XmlNamespaceManager suministrado.
Comentarios
El AddSort método permite a los usuarios ordenar objetos por su tipo de datos en lugar de por cadena o número. El IComparer objeto proporciona una implementación del método que admite la ordenación en clases definidas por el Compare usuario.
En el ejemplo siguiente, los libros se ordenan por número ISBN, donde isbn
es un objeto que implementa la IComparer interfaz.
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);
A continuación se muestran notas importantes que se deben tener en cuenta al usar el AddSort método .
El orden en el que se agregan las ordenaciones proporciona el criterio de la clave de ordenación.
Si la XPathExpression clave de ordenación o requiere resolución de espacio de nombres, debe usar el SetContext método para proporcionar un XmlNamespaceManager para la resolución del espacio de nombres.
XPathExpression Si no incluye un prefijo, se supone que el identificador uniforme de recursos (URI) del espacio de nombres es el espacio de nombres vacío. Si el XML incluye un espacio de nombres predeterminado, debe seguir usando el SetContext método y proporcionar un XmlNamespaceManager que contenga un URI de prefijo y espacio de nombres para controlar el espacio de nombres predeterminado.
Consulte también
Se aplica a
AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType)
- Source:
- XPathExpr.cs
- Source:
- XPathExpr.cs
- Source:
- XPathExpr.cs
Cuando se reemplaza en una clase derivada, ordena los nodos seleccionados por la expresión XPath según los parámetros proporcionados.
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)
Parámetros
- expr
- Object
Objeto que representa el criterio de ordenación. Puede ser el valor string
del nodo o un objeto XPathExpression con una expresión XPath compilada.
- order
- XmlSortOrder
Valor XmlSortOrder que indica el criterio de ordenación.
- caseOrder
- XmlCaseOrder
Valor XmlCaseOrder que indica cómo se ordenan las mayúsculas y las minúsculas.
- lang
- String
Idioma que se va a usar para la comparación. Usa la clase CultureInfo que se puede pasar al método Compare para los tipos de idioma; por ejemplo, "es-es" para español de España. Si se especifica una cadena vacía, se usa el entorno del sistema para determinar la CultureInfo.
- dataType
- XmlDataType
Valor XmlDataType que indica el criterio de ordenación del tipo de datos.
Excepciones
La XPathExpression o el criterio de ordenación incluye un prefijo, y o bien no se proporciona un XmlNamespaceManager, o bien el prefijo no se encuentra en el XmlNamespaceManager suministrado.
Ejemplos
En el ejemplo siguiente se muestra cómo ordenar el documento de libros por precio en orden descendente.
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);
}
}
}
}
}
}
En el ejemplo se toma como entrada el archivo books.xml
.
<?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>
Comentarios
El orden en el que se agregan las ordenaciones proporciona el criterio de la clave de ordenación.
Si la XPathExpression clave de ordenación o requiere resolución de espacio de nombres, debe usar el SetContext método para proporcionar un XmlNamespaceManager para la resolución del espacio de nombres.
XPathExpression Si no incluye un prefijo, se supone que el identificador uniforme de recursos (URI) del espacio de nombres es el espacio de nombres vacío. Si el XML incluye un espacio de nombres predeterminado, debe seguir usando el SetContext método y proporcionar un XmlNamespaceManager que contenga un URI de prefijo y espacio de nombres para controlar el espacio de nombres predeterminado.
Consulte también
- XmlSortOrder
- XmlCaseOrder
- XmlDataType
- XmlNamespaceManager
- CultureInfo
- Compare
- SetContext(XmlNamespaceManager)