XPathExpression.AddSort Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Türetilmiş bir sınıfta geçersiz kılındığında, XPath ifadesi tarafından seçilen düğümleri sıralar.
Aşırı Yüklemeler
AddSort(Object, IComparer) |
Türetilmiş bir sınıfta geçersiz kılındığında, XPath ifadesi tarafından seçilen düğümleri belirtilen IComparer nesneye göre sıralar. |
AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType) |
Türetilmiş bir sınıfta geçersiz kılındığında, XPath ifadesi tarafından seçilen düğümleri sağlanan parametrelere göre sıralar. |
AddSort(Object, IComparer)
Türetilmiş bir sınıfta geçersiz kılındığında, XPath ifadesi tarafından seçilen düğümleri belirtilen IComparer nesneye göre sıralar.
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)
Parametreler
- expr
- Object
Sıralama anahtarını temsil eden bir nesne. Bu, düğümün string
veya derlenmiş XPath ifadesine sahip bir XPathExpression nesnenin değeri olabilir.
- comparer
- IComparer
IComparer Denklik için iki nesneyi karşılaştırmak için belirli veri türü karşılaştırmaları sağlayan bir nesne.
Özel durumlar
XPathExpression veya sıralama anahtarı bir ön ek içerir ve XmlNamespaceManager sağlanmaz veya ön ek sağlanan XmlNamespaceManageriçinde bulunamaz.
Açıklamalar
AddSort yöntemi, kullanıcıların nesneleri dizeye veya sayıya göre değil veri türlerine göre sıralamasına olanak tanır. nesnesi, IComparer kullanıcı tanımlı sınıflarda sıralamayı Compare destekleyen yönteminin bir uygulamasını sağlar.
Aşağıdaki örnekte, kitaplar ISBN numarasına göre sıralanır ve burada isbn
arabirimi uygulayan IComparer bir nesnedir.
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);
Yöntemi kullanırken dikkate alınması gereken önemli notlar aşağıdadır AddSort .
Sıralamaların eklendiği düzen, sıralama anahtarı düzenini sağlar.
XPathExpression veya sıralama anahtarı ad alanı çözümlemesi gerektiriyorsa, ad alanı çözümlemesi SetContext için bir XmlNamespaceManager sağlamak için yöntemini kullanmanız gerekir.
XPathExpression ön ek içermiyorsa, ad alanı Tekdüzen Kaynak Tanımlayıcısı'nın (URI) boş ad alanı olduğu varsayılır. XML'niz varsayılan bir ad alanı içeriyorsa, yöntemini kullanmaya SetContext devam etmeli ve varsayılan ad alanını işlemek için ön ek ve ad alanı URI'sini içeren bir XmlNamespaceManager ad alanı sağlamanız gerekir.
Ayrıca bkz.
Şunlara uygulanır
AddSort(Object, XmlSortOrder, XmlCaseOrder, String, XmlDataType)
Türetilmiş bir sınıfta geçersiz kılındığında, XPath ifadesi tarafından seçilen düğümleri sağlanan parametrelere göre sıralar.
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)
Parametreler
- expr
- Object
Sıralama anahtarını temsil eden bir nesne. Bu, düğümün string
veya derlenmiş XPath ifadesine sahip bir XPathExpression nesnenin değeri olabilir.
- order
- XmlSortOrder
XmlSortOrder Sıralama düzenini gösteren bir değer.
- caseOrder
- XmlCaseOrder
XmlCaseOrder Büyük ve küçük harflerin nasıl sıralanacağını gösteren değer.
- lang
- String
Karşılaştırma için kullanılacak dil. CultureInfo Dil türleri için yöntemine Compare geçirilebilen sınıfını kullanır; örneğin, ABD İngilizcesi için "us-en". Boş bir dize belirtilirse, sistem ortamı değerini belirlemek CultureInfoiçin kullanılır.
- dataType
- XmlDataType
XmlDataType Veri türü için sıralama düzenini gösteren değer.
Özel durumlar
XPathExpression veya sıralama anahtarı bir ön ek içerir ve XmlNamespaceManager sağlanmaz veya ön ek sağlanan XmlNamespaceManageriçinde bulunamaz.
Örnekler
Aşağıdaki örnekte, kitaplar belgesinin fiyata göre azalan düzende nasıl sıralanacağını gösterir.
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);
}
}
}
}
}
}
Örnek, dosyayı giriş olarak alır 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>
Açıklamalar
Sıralamaların eklendiği düzen, sıralama anahtarı düzenini sağlar.
XPathExpression veya sıralama anahtarı ad alanı çözümlemesi gerektiriyorsa, ad alanı çözümlemesi SetContext için bir XmlNamespaceManager sağlamak için yöntemini kullanmanız gerekir.
XPathExpression ön ek içermiyorsa, ad alanı Tekdüzen Kaynak Tanımlayıcısı'nın (URI) boş ad alanı olduğu varsayılır. XML'niz varsayılan bir ad alanı içeriyorsa, yöntemini kullanmaya SetContext devam etmeli ve varsayılan ad alanını işlemek için ön ek ve ad alanı URI'sini içeren bir XmlNamespaceManager ad alanı sağlamanız gerekir.
Ayrıca bkz.
- XmlSortOrder
- XmlCaseOrder
- XmlDataType
- XmlNamespaceManager
- CultureInfo
- Compare
- SetContext(XmlNamespaceManager)