NET Framework 4

其他版本

  • .NET Framework 3.5
  • .NET Framework 2.0
此主题尚未评级 评价此主题

本主题回顾整个 XPath 参考中出现的语法示例。 所有示例均基于 XPath 语法的示例 XML 文件 (inventory.xml)。 有关在测试文件中使用 XPath 表达式的示例,请参见本主题最后的“联合 ( | ) 示例”。

表达式 引用

./author

当前上下文中的所有 <author> 元素。 注意,此表达式等效于下一行中的表达式。

author

当前上下文中的所有 <author> 元素。

first.name

当前上下文中的所有 <first.name> 元素。

/bookstore

此文档的文档元素 (<bookstore>)。

//author

文档中的所有 <author> 元素。

book[/bookstore/@specialty=@style]

style 属性值等于文档根处 <bookstore> 元素的 specialty 属性值的所有 <book> 元素。

author/first-name

作为 <author> 元素子级的所有 <first-name> 元素。

bookstore//title

<bookstore> 元素中一级或多级深度的所有 <title> 元素(任意后代)。 注意,此表达式不同于下一行中的表达式。

bookstore/*/title

作为 <bookstore> 元素的孙代的所有 <title> 元素。

bookstore//book/excerpt//emph

位于 <book> 元素的 <excerpt> 子级内任意位置和位于 <bookstore> 元素内任意位置的所有 <emph> 元素。

.//title

当前上下文中一级或多级深度的所有 <title> 元素。 注意,本质上只有这种情况需要句点表示法。

author/*

作为 <author> 元素子级的所有元素。

book/*/last-name

作为 <book> 元素孙级的 <last-name> 所有元素。

*/*

当前上下文的所有孙级元素。

*[@specialty]

具有 specialty 属性的所有元素。

@style

当前上下文的 style 属性。

price/@exchange

当前上下文中 <price> 元素上的 exchange 属性。

price/@exchange/total

返回空节点集,因为属性不包含元素子级。 XML 路径语言 (XPath) 语法允许使用此表达式,但是严格意义上讲无效。

book[@style]

当前上下文的具有 style 属性的 <book> 所有元素。

book/@style

当前上下文的所有 <book> 元素的 style 属性。

@*

当前元素上下文的所有属性。

./first-name

当前上下文节点中的所有 <first-name> 元素。 注意,此表达式等效于下一行中的表达式。

first-name

当前上下文节点中的所有 <first-name> 元素。

author[1]

当前上下文节点中的第一个 <author> 元素。

author[first-name][3]

具有 <first-name> 子级的第三个 <author> 元素。

my:book

my 命名空间中的 <book> 元素。

my:*

my 命名空间中的所有元素。

@my:*

my 命名空间中的所有属性(不包括 my 命名空间中的元素的未限定属性)。

注意,索引相对于父级。 考虑以下数据:

复制
<x><y/><y/>
</x>
<x><y/><y/>
</x>

表达式 引用

x/y[1]

每个 <x> 的第一个 <y> 子级。 此表达式等效于下一行中的表达式。

x/y[position() = 1]

每个 <x> 的第一个 <y> 子级。

(x/y)[1]

<x> 元素的整个 <y> 子级集合中的第一个 <y>

x[1]/y[2]

第一个 <x> 的第二个 <y> 子级。

其他示例引用 XPath 的示例 XML 文件。

表达式 引用

book[last()]

前上下文节点的最后一个 <book> 元素。

book/author[last()]

前上下文节点的每个 <book> 元素的最后一个 <author> 子级。

(book/author)[last()]

当前上下文节点的 <book> 元素的整个 <author> 子级集合中的最后一个 <author> 元素。

book[excerpt]

包含至少一个 <excerpt> 元素子级的所有 <book> 元素。

book[excerpt]/title

作为 <book> 元素子级,同时包含至少一个 <excerpt> 元素子级的所有 <title> 元素。

book[excerpt]/author[degree]

包含至少一个 <degree> 元素子级,并作为同样包含至少一个 <excerpt> 元素的 <book> 元素的子级的所有 <author> 元素。

book[author/degree]

包含 <author> 子级,这些子级又包含至少一个 <degree> 子级的所有 <book> 元素

author[degree][award]

包含至少一个 <degree> 元素子级和至少一个 <award> 元素子级的所有 <author> 元素。

author[degree and award]

包含至少一个 <degree> 元素子级和至少一个 <award> 元素子级的所有 <author> 元素。

author[(degree or award) and publication]

包含至少一个 <degree><award> 和至少一个 <publication> 作为子级的所有 <author> 元素。

author[degree and not(publication)]

包含至少一个 <degree> 元素子级并且不包含 <publication> 元素子级的所有 <author> 元素。

author[not(degree or award) and publication]

包含至少一个 <publication> 元素子级,但不包含 <degree><award> 元素子级的所有 <author> 元素。

author[last-name = "Bob"]

包含至少一个值为 Bob<last-name> 元素子级的所有 <author> 元素。

author[last-name[1] = "Bob"]

第一个 <last-name> 子元素的值为 Bob 的所有 <author> 元素。 注意,此表达式等效于下一行中的表达式。

author[last-name [position()=1]= "Bob"]

第一个 <last-name> 子元素的值为 Bob 的所有 <author> 元素。

degree[@from != "Harvard"]

from 属性不等于 "Harvard" 的所有 <degree> 元素。

author[. = "Matthew Bob"]

值为 Matthew Bob 的所有 <author> 元素。

author[last-name = "Bob" and ../price &gt; 50]

包含值为 Bob<last-name> 子元素和值大于 50 的 <price> 同级元素的所有 <author> 元素。

book[position() &lt;= 3]

前三本书(1、2、3)。

author[not(last-name = "Bob")]

不包含值为 Bob<last-name> 子元素的所有 <author> 元素。

author[first-name = "Bob"]

至少有一个值为 Bob<first-name> 子级的所有 <author> 元素。

author[* = "Bob"]

所有包含任何值为 Bob 的子元素的 author 元素。

author[last-name = "Bob" and first-name = "Joe"]

具有值为 Bob<last-name> 子元素和值为 Joe<first-name> 子元素的所有 <author> 元素。

price[@intl = "Canada"]

上下文节点中 intl 属性等于 "Canada" 的所有 <price> 元素。

degree[position() &lt; 3]

作为上下文节点子级的前两个 <degree> 元素。

p/text()[2]

上下文节点中每个 <p> 元素的第二个文本节点。

ancestor::book[1]

上下文节点最近的 <book> 上级。

ancestor::book[author][1]

上下文节点最近的 <book> 上级,并且此 <book> 元素具有 <author> 元素作为其子级。

ancestor::author[parent::book][1]

当前上下文最近的 <author> 上级,并且此 <author> 元素是 <book> 元素的子级。

联合 ( | ) 示例


为了演示 union 运算,我们使用以下 XPath 表达式:

x | y/x

在以下 XML 文件中选择所有值为 greenblue 的 <x> 元素:

XML 文件 (data1.xml)

XSLT 文件 (union.xsl)

格式化输出

green,blue,blue,green

处理器输出

<?xml version="1.0" encoding="UTF-16"?>green,blue,blue,green

引用地址: http://msdn.microsoft.com/zh-cn/library/ms256086.aspx

(引)XPath 示例相关推荐

  1. java 实例化xpath_Java XPath示例教程

    java 实例化xpath Welcome to Java XPath Example Tutorial. XPath provides syntax to define part of an XML ...

  2. Selenium XPath示例

    In Selenium, if elements are not found with locators like name, id, class, linkText, partialLinkText ...

  3. 利用tcpcopy引流做模拟在线测试

    本文转自 http://www.searchtb.com/2012/05/using-tcpcopy-to-simulate-traffic.html 一.工具介绍 Tcpcopy是一个分布式在线压力 ...

  4. 爬虫中xpath的使用

    一.xpath介绍 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 使用路径表达式在 XML 文档中进行导航 XPath 包 ...

  5. python学习之xpath使用案例总结_xPath 用法总结整理

    最近在研究kafka,看了一堆理论的东西,想动手实践一些东西,奈何手上的数据比较少,突发奇想就打算写个爬虫去抓一些数据来玩,顺便把深入一下爬虫技术. 之前写过一些小爬虫,一般就是用python的req ...

  6. xPath 用法总结整理

    最近在研究kafka,看了一堆理论的东西,想动手实践一些东西,奈何手上的数据比较少,突发奇想就打算写个爬虫去抓一些数据来玩,顺便把深入一下爬虫技术. 之前写过一些小爬虫,一般就是用python的req ...

  7. 基础爬虫系列课程授课内容3——xpath语法

    xpath语法的使用 一.xpath介绍 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 使用路径表达式在 XML 文档中进 ...

  8. HTML解析-Xpath

    HTML解析-Xpath 文章目录 HTML解析-Xpath XPath 节点 lxml HTML的内容返回给浏览器,浏览器就会解析它,并对它渲染. HTML超文本表示语言,设计的初衷就是为了超越普通 ...

  9. JAVA操作xml文件

    参考:java操作xml方法,总有适合你的 XML技术在Java开发中的应用 1.简介 xml: extensible Markup Language 1.1使用场景: 不同的系统之间交互时使用xml ...

  10. xslt 标签取集合第一条数据_XSLT函数集合:数值函数、字符串函、节点集函数和布尔函数...

    任何的编程语言或者是SQL语句都有内置的函数或方法,而强大灵活的xslt技术也是如此.熟练掌握XSLT的常用函数的用法,XSLT的应用将变得如此轻松,你会发现XSLT比想象中还要牛!以下是xslt数值 ...

最新文章

  1. 建立双链表(尾插法)
  2. jquery each函数的使用
  3. javabean简介
  4. c++ 冒泡排序_学习笔记-详解冒泡排序
  5. linux下面的浏览器不停自动打开新网页
  6. 纯c语言实现的改进暗通道去雾算法测试程序(附赠大量测试图像),基于改进暗通道先验算法的图像去雾...
  7. HDU1856_More is better
  8. 10.2829(NOIP模拟修正总结)
  9. NOIP模拟测试25
  10. 三分钟带你弄懂slot插槽——vue进阶
  11. Oracle:grouping和rollup
  12. 安装flash player提示版本不是最新,无法安装
  13. 多线程相关知识点详解
  14. 资阳停车场系统推荐_专业停车场系统维护业务广泛
  15. 一篇文章理清产品、运营、营销之间的概念和关系
  16. MT7628实现Amazon alexa语音控制
  17. AlphaSSL证书和GlobalSign SSL证书介绍
  18. 机器学习 —— 支持向量机
  19. CSS Display与Visibility区别和用法
  20. 当“思岚”激光雷达邂逅盲人拐杖

热门文章

  1. Php 中如何将内容写入log日志中
  2. 使用jQuery来创建平滑的页面滚动
  3. 直线算法(Bresenham)
  4. 深入剖析引用参数Ref和Out
  5. sklearn中的损失函数
  6. SQL Service 数据库 基本操作 视图 触发器 游标 存储过程
  7. Weave 网络结构分析 - 每天5分钟玩转 Docker 容器技术(64)
  8. 使用solrj api操作solr
  9. Spring对字段和集合的注入---依赖注入
  10. 为vs2008添加Mobile Web Forms模板