XPathNavigator.Evaluate Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Utvärderar det angivna XPath-uttrycket och returnerar det typerade resultatet.
Överlagringar
| Name | Description |
|---|---|
| Evaluate(String) |
Utvärderar det angivna XPath-uttrycket och returnerar det typerade resultatet. |
| Evaluate(XPathExpression) |
Utvärderar och returnerar XPathExpression det typerade resultatet. |
| Evaluate(String, IXmlNamespaceResolver) |
Utvärderar det angivna XPath-uttrycket och returnerar det inskrivna resultatet med hjälp av det IXmlNamespaceResolver angivna objektet för att matcha namnområdesprefix i XPath-uttrycket. |
| Evaluate(XPathExpression, XPathNodeIterator) |
Använder den angivna kontexten XPathExpressionför att utvärdera , och returnerar det typerade resultatet. |
Evaluate(String)
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
Utvärderar det angivna XPath-uttrycket och returnerar det typerade resultatet.
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
Parametrar
- xpath
- String
En sträng som representerar ett XPath-uttryck som kan utvärderas.
Returer
Resultatet av uttrycket (boolesk, tal, sträng eller noduppsättning). Detta mappar till Boolean, Double, Stringeller XPathNodeIterator objekt respektive.
Undantag
Returtypen för XPath-uttrycket är en noduppsättning.
XPath-uttrycket är inte giltigt.
Exempel
I följande exempel utvärderas ett XPath-uttryck och returneras en 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())
Exemplet tar books.xml filen som indata.
<?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>
Kommentarer
Följande C#-kod konverterar Price/text() noden till ett tal, multiplicerar den med 10 och returnerar det resulterande värdet.
nav.Evaluate("Price/text()*10");
Note
Funktionerna XPath position() och last(), såvida de inte används som predikat i ett platssteg, kräver en referens till en noduppsättning för att kunna utvärderas. I det här fallet måste du använda den överlagring som tar ett XPathNodeIterator argument. Annars returnerar position() och last() 0.
Den här metoden har ingen effekt på tillståndet för XPathNavigator.
Se även
Gäller för
Evaluate(XPathExpression)
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
Utvärderar och returnerar XPathExpression det typerade resultatet.
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
Parametrar
- expr
- XPathExpression
En XPathExpression som kan utvärderas.
Returer
Resultatet av uttrycket (boolesk, tal, sträng eller noduppsättning). Detta mappar till Boolean, Double, Stringeller XPathNodeIterator objekt respektive.
Undantag
Returtypen för XPath-uttrycket är en noduppsättning.
XPath-uttrycket är inte giltigt.
Exempel
I följande exempel utvärderas en XPathExpression och returneras en 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())
Exemplet tar books.xml filen som indata.
<?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>
Kommentarer
Följande C#-kod returnerar ett tal när noden har konverterats Price/text() till ett tal och värdet multiplicerats med 10.
XPathExpression expr = nav.Compile("Price/text()*10");
nav.Evaluate(expr);
Note
Funktionerna XPath position() och last(), såvida de inte används som predikat i ett platssteg, kräver en referens till en noduppsättning för att kunna utvärderas. I det här fallet måste du använda den överlagring som tar ett XPathNodeIterator argument. Annars returnerar position() och last() 0.
Den här metoden har ingen effekt på tillståndet för XPathNavigator.
Se även
Gäller för
Evaluate(String, IXmlNamespaceResolver)
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
Utvärderar det angivna XPath-uttrycket och returnerar det inskrivna resultatet med hjälp av det IXmlNamespaceResolver angivna objektet för att matcha namnområdesprefix i XPath-uttrycket.
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
Parametrar
- xpath
- String
En sträng som representerar ett XPath-uttryck som kan utvärderas.
- resolver
- IXmlNamespaceResolver
Objektet IXmlNamespaceResolver som används för att matcha namnområdesprefix i XPath-uttrycket.
Returer
Resultatet av uttrycket (boolesk, tal, sträng eller noduppsättning). Detta mappar till Boolean, Double, Stringeller XPathNodeIterator objekt respektive.
Undantag
Returtypen för XPath-uttrycket är en noduppsättning.
XPath-uttrycket är inte giltigt.
Exempel
I följande exempel utvärderas ett XPath-uttryck och ett Double med hjälp av det XmlNamespaceManager angivna objektet för att matcha namnområdesprefix i XPath-uttrycket.
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())
Exemplet tar contosoBooks.xml filen som indata.
<?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>
Kommentarer
Följande C#-kod returnerar ett tal när noden har konverterats Price/text() till ett tal och värdet multiplicerats med 10.
XPathExpression expr = nav.Compile("Price/text()*10");
nav.Evaluate(expr);
Note
Funktionerna XPath position() och last(), såvida de inte används som predikat i ett platssteg, kräver en referens till en noduppsättning för att kunna utvärderas. I det här fallet måste du använda den överlagring som tar ett XPathNodeIterator argument. Annars returnerar position() och last() 0.
Den här metoden har ingen effekt på tillståndet för XPathNavigator.
Gäller för
Evaluate(XPathExpression, XPathNodeIterator)
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
- Källa:
- XPathNavigator.cs
Använder den angivna kontexten XPathExpressionför att utvärdera , och returnerar det typerade resultatet.
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
Parametrar
- expr
- XPathExpression
En XPathExpression som kan utvärderas.
- context
- XPathNodeIterator
En XPathNodeIterator som pekar på den valda noduppsättningen som utvärderingen ska utföras på.
Returer
Resultatet av uttrycket (boolesk, tal, sträng eller noduppsättning). Detta mappar till Boolean, Double, Stringeller XPathNodeIterator objekt respektive.
Undantag
Returtypen för XPath-uttrycket är en noduppsättning.
XPath-uttrycket är inte giltigt.
Exempel
I följande exempel utvärderas och XPathExpression returneras en Double med noden Current i XPathNodeIterator som kontextnod.
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())
Exemplet tar books.xml filen som indata.
<?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>
Kommentarer
Uttrycket utvärderas med noden Current i XPathNodeIterator som kontextnod. Om context är nullanvänds noden där den XPathNavigator för närvarande är placerad som kontextnod.
Funktionerna position() och last(), såvida de inte används som predikat i ett platssteg, returnerar alltid 0 under följande villkor:
Argumentet
contextärnull.MoveNext har inte anropats på XPathNodeIterator.
Eftersom funktionerna position() och last() fungerar på den aktuella noden bör du inte använda Current egenskapen för att flytta bort från den valda noduppsättningen. Detta kan ogiltigförklara tillståndet för XPathNavigator.
Den här metoden har ingen effekt på tillståndet för XPathNavigator.