返回介绍

使用 XPathNavigator 计算 XPath 表达式

发布于 2025-02-23 23:16:04 字数 2757 浏览 0 评论 0 收藏 0

XPathNavigator 类提供了 Evaluate 方法来计算 XPath 表达式。 Evaluate 方法使用 XPath 表达式,计算表达式,然后基于 XPath 表达式的结果返回 Boolean、Number、String 或 Node Set 的 W3C XPath 类型。

Evaluate 方法

Evaluate 方法使用 XPath 表达式,计算表达式,然后返回 Boolean ( Boolean )、Number ( Double )、String ( String ) 或 Node Set ( XPathNodeIterator ) 的类型化结果。 例如, Evaluate 方法可以在数学方法中使用。 以下示例代码计算 books.xml 文件中的所有图书的总价格。

Dim document As XPathDocument = New XPathDocument("books.xml")  
Dim navigator As XPathNavigator = document.CreateNavigator()  

Dim query As XPathExpression = navigator.Compile("sum(//price/text())")  
Dim total As Double = CType(navigator.Evaluate(query), Double)  
Console.WriteLine(total)  
XPathDocument document = new XPathDocument("books.xml");  
XPathNavigator navigator = document.CreateNavigator();  

XPathExpression query = navigator.Compile("sum(//price/text())");  
Double total = (Double)navigator.Evaluate(query);  
Console.WriteLine(total);  

该示例使用 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>

position 和 last 函数

Evaluate 方法是重载方法。 一个 Evaluate 方法使用 XPathNodeIterator 对象作为参数。 此特定的 Evaluate 方法与只使用 Evaluate 对象作为参数的 XPathExpression 方法相同,只是允许使用节点集参数指定要执行计算的当前上下文。 XPath position()last() 函数需要此上下文,因为这两个函数相对于当前上下文节点。 除非在定位步骤中作为谓词使用, position()last() 函数要求引用节点集以便进行计算,否则, positionlast 函数将返回 0

另请参阅

XmlDocument
XPathDocument
XPathNavigator
使用 XPath 数据模型处理 XML 数据
使用 XPathNavigator 选择 XML 数据
使用 XPathNavigator 匹配节点
XPath 查询识别的节点类型
XPath 查询和命名空间
已编译的 XPath 表达式

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文