XPathNavigator.Evaluate Methode

Definitie

Evalueert de opgegeven XPath-expressie en retourneert het getypte resultaat.

Overloads

Name Description
Evaluate(String)

Evalueert de opgegeven XPath-expressie en retourneert het getypte resultaat.

Evaluate(XPathExpression)

Evalueert het XPathExpression en retourneert het getypte resultaat.

Evaluate(String, IXmlNamespaceResolver)

Evalueert de opgegeven XPath-expressie en retourneert het getypte resultaat met behulp van het IXmlNamespaceResolver object dat is opgegeven om naamruimtevoorvoegsels in de XPath-expressie op te lossen.

Evaluate(XPathExpression, XPathNodeIterator)

Gebruikt de opgegeven context om het XPathExpressionresultaat te evalueren en retourneert het getypte resultaat.

Evaluate(String)

Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs

Evalueert de opgegeven XPath-expressie en retourneert het getypte resultaat.

public:
 virtual System::Object ^ Evaluate(System::String ^ xpath);
public virtual object Evaluate(string xpath);
abstract member Evaluate : string -> obj
override this.Evaluate : string -> obj
Public Overridable Function Evaluate (xpath As String) As Object

Parameters

xpath
String

Een tekenreeks die een XPath-expressie vertegenwoordigt die kan worden geëvalueerd.

Retouren

Het resultaat van de expressie (Booleaanse waarde, getal, tekenreeks of knooppuntset). Hiermee worden respectievelijk objecten toegewezen aanBoolean, DoubleStringof XPathNodeIterator objecten.

Uitzonderingen

Het retourtype van de XPath-expressie is een knooppuntset.

De XPath-expressie is ongeldig.

Voorbeelden

In het volgende voorbeeld wordt een XPath-expressie geëvalueerd en wordt een Double.

XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

Double total = (double)navigator.Evaluate("sum(descendant::book/price)");
Console.WriteLine("Total price for all books: {0}", total.ToString());
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim total As Double = CType(navigator.Evaluate("sum(descendant::book/price)"), Double)
Console.WriteLine("Total price for all books: {0}", total.ToString())

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 volgende C#-code converteert het Price/text() knooppunt naar een getal, vermenigvuldigt het met 10 en retourneert de resulterende waarde.

nav.Evaluate("Price/text()*10");

Note

De functies XPath position() en last(), tenzij deze worden gebruikt als predicaat in een locatiestap, vereisen een verwijzing naar een knooppuntset om te worden geëvalueerd. In dit geval moet u de overbelasting gebruiken die een XPathNodeIterator argument gebruikt; anders retourneert position() en last() 0.

Deze methode heeft geen effect op de status van de XPathNavigator.

Zie ook

Van toepassing op

Evaluate(XPathExpression)

Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs

Evalueert het XPathExpression en retourneert het getypte resultaat.

public:
 virtual System::Object ^ Evaluate(System::Xml::XPath::XPathExpression ^ expr);
public virtual object Evaluate(System.Xml.XPath.XPathExpression expr);
abstract member Evaluate : System.Xml.XPath.XPathExpression -> obj
override this.Evaluate : System.Xml.XPath.XPathExpression -> obj
Public Overridable Function Evaluate (expr As XPathExpression) As Object

Parameters

expr
XPathExpression

Een XPathExpression die kan worden geëvalueerd.

Retouren

Het resultaat van de expressie (Booleaanse waarde, getal, tekenreeks of knooppuntset). Hiermee worden respectievelijk objecten toegewezen aanBoolean, DoubleStringof XPathNodeIterator objecten.

Uitzonderingen

Het retourtype van de XPath-expressie is een knooppuntset.

De XPath-expressie is ongeldig.

Voorbeelden

Het volgende voorbeeld evalueert een XPathExpression en retourneert een Double.

XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

XPathExpression query = navigator.Compile("sum(descendant::book/price)");

Double total = (double)navigator.Evaluate(query);
Console.WriteLine("Total price for all books: {0}", total.ToString());
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim query As XPathExpression = navigator.Compile("sum(descendant::book/price)")

Dim total As Double = CType(navigator.Evaluate(query), Double)
Console.WriteLine("Total price for all books: {0}", total.ToString())

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 volgende C#-code retourneert een getal na het converteren van het Price/text() knooppunt naar een getal en het vermenigvuldigen van de waarde met 10.

XPathExpression expr = nav.Compile("Price/text()*10");
nav.Evaluate(expr);

Note

De functies XPath position() en last(), tenzij deze worden gebruikt als predicaat in een locatiestap, vereisen een verwijzing naar een knooppuntset om te worden geëvalueerd. In dit geval moet u de overbelasting gebruiken die een XPathNodeIterator argument gebruikt; anders retourneert position() en last() 0.

Deze methode heeft geen effect op de status van de XPathNavigator.

Zie ook

Van toepassing op

Evaluate(String, IXmlNamespaceResolver)

Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs

Evalueert de opgegeven XPath-expressie en retourneert het getypte resultaat met behulp van het IXmlNamespaceResolver object dat is opgegeven om naamruimtevoorvoegsels in de XPath-expressie op te lossen.

public:
 virtual System::Object ^ Evaluate(System::String ^ xpath, System::Xml::IXmlNamespaceResolver ^ resolver);
public virtual object Evaluate(string xpath, System.Xml.IXmlNamespaceResolver? resolver);
public virtual object Evaluate(string xpath, System.Xml.IXmlNamespaceResolver resolver);
abstract member Evaluate : string * System.Xml.IXmlNamespaceResolver -> obj
override this.Evaluate : string * System.Xml.IXmlNamespaceResolver -> obj
Public Overridable Function Evaluate (xpath As String, resolver As IXmlNamespaceResolver) As Object

Parameters

xpath
String

Een tekenreeks die een XPath-expressie vertegenwoordigt die kan worden geëvalueerd.

resolver
IXmlNamespaceResolver

Het IXmlNamespaceResolver object dat wordt gebruikt om naamruimtevoorvoegsels in de XPath-expressie op te lossen.

Retouren

Het resultaat van de expressie (Booleaanse waarde, getal, tekenreeks of knooppuntset). Hiermee worden respectievelijk objecten toegewezen aanBoolean, DoubleStringof XPathNodeIterator objecten.

Uitzonderingen

Het retourtype van de XPath-expressie is een knooppuntset.

De XPath-expressie is ongeldig.

Voorbeelden

Het volgende voorbeeld evalueert een XPath-expressie en retourneert een Double met behulp van het XmlNamespaceManager object dat is opgegeven om naamruimtevoorvoegsels in de XPath-expressie op te lossen.

XPathDocument document = new XPathDocument("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

XmlNamespaceManager manager = new XmlNamespaceManager(navigator.NameTable);
manager.AddNamespace("bk", "http://www.contoso.com/books");

Double total = (double)navigator.Evaluate("sum(descendant::bk:book/bk:price)", manager);
Console.WriteLine("Total price for all books: {0}", total.ToString());
Dim document As XPathDocument = New XPathDocument("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim manager As XmlNamespaceManager = New XmlNamespaceManager(navigator.NameTable)
manager.AddNamespace("bk", "http://www.contoso.com/books")

Dim total As Double = CType(navigator.Evaluate("sum(descendant::bk:book/bk:price)", manager), Double)
Console.WriteLine("Total price for all books: {0}", total.ToString())

In het voorbeeld wordt het contosoBooks.xml bestand als invoer gebruikt.

<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.contoso.com/books">
    <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 volgende C#-code retourneert een getal na het converteren van het Price/text() knooppunt naar een getal en het vermenigvuldigen van de waarde met 10.

XPathExpression expr = nav.Compile("Price/text()*10");
nav.Evaluate(expr);

Note

De functies XPath position() en last(), tenzij deze worden gebruikt als predicaat in een locatiestap, vereisen een verwijzing naar een knooppuntset om te worden geëvalueerd. In dit geval moet u de overbelasting gebruiken die een XPathNodeIterator argument gebruikt; anders retourneert position() en last() 0.

Deze methode heeft geen effect op de status van de XPathNavigator.

Van toepassing op

Evaluate(XPathExpression, XPathNodeIterator)

Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs

Gebruikt de opgegeven context om het XPathExpressionresultaat te evalueren en retourneert het getypte resultaat.

public:
 virtual System::Object ^ Evaluate(System::Xml::XPath::XPathExpression ^ expr, System::Xml::XPath::XPathNodeIterator ^ context);
public virtual object Evaluate(System.Xml.XPath.XPathExpression expr, System.Xml.XPath.XPathNodeIterator? context);
public virtual object Evaluate(System.Xml.XPath.XPathExpression expr, System.Xml.XPath.XPathNodeIterator context);
abstract member Evaluate : System.Xml.XPath.XPathExpression * System.Xml.XPath.XPathNodeIterator -> obj
override this.Evaluate : System.Xml.XPath.XPathExpression * System.Xml.XPath.XPathNodeIterator -> obj
Public Overridable Function Evaluate (expr As XPathExpression, context As XPathNodeIterator) As Object

Parameters

expr
XPathExpression

Een XPathExpression die kan worden geëvalueerd.

context
XPathNodeIterator

Een XPathNodeIterator die verwijst naar de geselecteerde knooppuntset waarop de evaluatie moet worden uitgevoerd.

Retouren

Het resultaat van de expressie (Booleaanse waarde, getal, tekenreeks of knooppuntset). Hiermee worden respectievelijk objecten toegewezen aanBoolean, DoubleStringof XPathNodeIterator objecten.

Uitzonderingen

Het retourtype van de XPath-expressie is een knooppuntset.

De XPath-expressie is ongeldig.

Voorbeelden

Het volgende voorbeeld evalueert een XPathExpression en retourneert een Double met behulp van het Current knooppunt van het XPathNodeIterator als contextknooppunt.

XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

XPathNodeIterator nodes = navigator.Select("//book");
XPathExpression query = nodes.Current.Compile("sum(descendant::price)");

Double total = (double)navigator.Evaluate(query, nodes);
Console.WriteLine("Total price for all books: {0}", total.ToString());
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim nodes As XPathNodeIterator = navigator.Select("//book")
Dim query As XPathExpression = nodes.Current.Compile("sum(descendant::price)")

Dim total As Double = CType(navigator.Evaluate(query, nodes), Double)
Console.WriteLine("Total price for all books: {0}", total.ToString())

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 expressie wordt geëvalueerd met behulp van het knooppunt van het CurrentXPathNodeIterator contextknooppunt. Als context dat het is null, wordt het knooppunt waarop het XPathNavigator momenteel is geplaatst, gebruikt als het contextknooppunt.

De functies position() en last(), tenzij gebruikt als predicaat in een locatiestap, retourneren altijd 0 onder de volgende voorwaarden:

Omdat de functies position() en last() op het huidige knooppunt werken, moet u de Current eigenschap niet gebruiken om weg te gaan van de geselecteerde knooppuntset. Dit kan de status van de XPathNavigator.

Deze methode heeft geen effect op de status van de XPathNavigator.

Van toepassing op