XPathNavigator.NavigatorComparer Propiedad
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í.
Obtiene un IEqualityComparer que se usa para la comparación de igualdad de objetos XPathNavigator.
public:
static property System::Collections::IEqualityComparer ^ NavigatorComparer { System::Collections::IEqualityComparer ^ get(); };
public static System.Collections.IEqualityComparer NavigatorComparer { get; }
static member NavigatorComparer : System.Collections.IEqualityComparer
Public Shared ReadOnly Property NavigatorComparer As IEqualityComparer
Valor de propiedad
IEqualityComparer que se usa para la comparación de igualdad de objetos XPathNavigator.
Ejemplos
En el ejemplo siguiente se muestra el uso de la NavigatorComparer propiedad .
XPathDocument^ document = gcnew XPathDocument("books.xml");
XPathNavigator^ navigator = document->CreateNavigator();
Hashtable^ table = gcnew Hashtable(XPathNavigator::NavigatorComparer);
// Add nodes to the Hashtable.
for each (XPathNavigator^ navigator2 in navigator->Select("//book"))
{
Object^ value = navigator2->Evaluate("string(./title)");
table->Add(navigator2->Clone(), value);
Console::WriteLine("Added book with title {0}", value);
}
Console::WriteLine(table->Count);
Console::WriteLine("Does the Hashtable have the book \"The Confidence Man\"?");
Console::WriteLine(table->Contains(navigator->SelectSingleNode("//book[title='The Confidence Man']")));
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();
Hashtable table = new Hashtable(XPathNavigator.NavigatorComparer);
// Add nodes to the Hashtable.
foreach (XPathNavigator navigator2 in navigator.Select("//book"))
{
object value = navigator2.Evaluate("string(./title)");
table.Add(navigator2.Clone(), value);
Console.WriteLine("Added book with title {0}", value);
}
Console.WriteLine(table.Count);
Console.WriteLine("Does the Hashtable have the book \"The Confidence Man\"?");
Console.WriteLine(table.Contains(navigator.SelectSingleNode("//book[title='The Confidence Man']")));
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim table As Hashtable = New Hashtable(XPathNavigator.NavigatorComparer)
' Add nodes to the Hashtable.
For Each navigator2 As XPathNavigator In navigator.Select("//book")
Dim value As Object = navigator2.Evaluate("string(./title)")
table.Add(navigator2.Clone(), value)
Console.WriteLine("Added book with title {0}", value)
Next
Console.WriteLine(table.Count)
Console.WriteLine("Does the Hashtable have the book 'The Confidence Man'?")
Console.WriteLine(table.Contains(navigator.SelectSingleNode("//book[title='The Confidence Man']")))
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
La NavigatorComparer propiedad permite XPathNavigator comparar objetos basándose en la posición en lugar de hacer referencia al objeto . Los ComparePosition métodos y Equals implementados por esta clase se basan en la posición de los XPathNavigator objetos pasados como parámetros. El GetHashCode método implementado por esta clase usa las propiedades del nodo, como su nombre local y el URI del espacio de nombres para crear un código hash para el nodo.