XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。

XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。

推荐一个挺不错的网站:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html  里面有很不错的例子,下面的例子中红色字体表示使用对应语法获取的元素(或属性)。

XPath轴(XPath Axes)可定义某个相对于当前节点的节点集:

1、child  选取当前节点的所有子元素

2、parent  选取当前节点的父节点

3、descendant 选取当前节点的所有后代元素(子、孙等)

4、ancestor  选取当前节点的所有先辈(父、祖父等)

5、descendant-or-self  选取当前节点的所有后代元素(子、孙等)以及当前节点本身

6、ancestor-or-self  选取当前节点的所有先辈(父、祖父等)以及当前节点本身

7、preceding-sibling 选取当前节点之前的所有同级节点

8、following-sibling 选取当前节点之后的所有同级节点

9、preceding   选取文档中当前节点的开始标签之前的所有节点

10、following   选取文档中当前节点的结束标签之后的所有节点

11、self  选取当前节点

12、attribute  选取当前节点的所有属性

13、namespace 选取当前节点的所有命名空间节点

descendant选取当前节点的所有后代元素(包括子节点、子孙节点…),descendant (后代)轴包含上下文节点的后代,一个后代是指子节点或者子节点的子节点等等。

/descendant::*   选择文档根元素的所有后代.即所有的元素被选择

<AAA>  
     <BBB>  
          <DDD>  
               <CCC>  
                    <DDD/>  
                    <EEE/>  
               </CCC>  
          </DDD>  
     </BBB>  
     <CCC>  
          <DDD>  
               <EEE>  
                    <DDD>  
                         <FFF/>  
                    </DDD>  
               </EEE>  
          </DDD>  
     </CCC>  
   </AAA>

/AAA/BBB/descendant::*   选择/AAA/BBB的所有后代元素

<AAA>  
     <BBB>  
          <DDD>  
               <CCC>  
                    <DDD/>  
                    <EEE/>  
               </CCC>  
          </DDD>  
     </BBB>  
     <CCC>  
          <DDD>  
               <EEE>  
                    <DDD>  
                         <FFF/>  
                    </DDD>  
               </EEE>  
          </DDD>  
     </CCC>  
  </AAA>

//CCC/descendant::*   选择所有CCC元素的所有后代元素

<AAA>  
     <BBB>  
          <DDD>  
               <CCC>  
                    <DDD/>  
                    <EEE/>  
               </CCC>  
          </DDD>  
     </BBB>  
     <CCC>  
          <DDD>  
               <EEE>  
                    <DDD>  
                         <FFF/>  
                    </DDD>  
               </EEE>  
          </DDD>  
     </CCC>  
  </AAA>

//CCC/descendant::DDD  择所有以CCC为祖先元素的DDD元素

<AAA>  
     <BBB>  
          <DDD>  
               <CCC>  
                    <DDD/>  
                    <EEE/>  
               </CCC>  
          </DDD>  
     </BBB>  
     <CCC>  
          <DDD>  
               <EEE>  
                    <DDD>  
                         <FFF/>  
                    </DDD>  
               </EEE>  
          </DDD>  
     </CCC>  
  </AAA>

http://www.cnblogs.com/zhaozhan/archive/2009/09/10/1563728.html

XPath学习:轴(3)——descendant的更多相关文章

  1. XPath学习:轴(14)——总结

    原文地址:http://www.cnblogs.com/zhaozhan/archive/2009/09/10/1564396.html XPath 是一门在 XML 文档中查找信息的语言.XPath ...

  2. XPath学习:轴(1)——child

    http://www.cnblogs.com/zhaozhan/archive/2009/09/10/1563723.html ************************************ ...

  3. 使用xpath的轴(Axis)进行元素定位

    使用Xpath轴方式可依据在文档数中的元素的相对位置来进行定位,先找到一个相对好定位的元素,在根据与它相对位置来定位其他元素,可以解决一些元素难以定位的问题.今天学习了,写下笔记加深下印象 如家HTM ...

  4. XPath学习:parent,child

    XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历. XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointe ...

  5. HtmlAgilityPackage XPath学习

    最近的开发中要用到htmlAgilityPackage, 所以记录一下XPath相关知识! XPath 简介 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对 ...

  6. xpath 学习一: 节点

    xpath 中,有七种类型的节点: 元素.属性.文本.命名空间.处理指令.注释.以及根节点 树的根成为文档节点或者根节点. 节点关系: Parent, Children, sibling(同胞), A ...

  7. XPath学习

    一.基本语法 1.以 / 斜线开始,该路径表示到一个元素下的绝对路径 2.如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系) 3.星号 * 表示选择所有由 ...

  8. XPath 学习二: 语法

    XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 下面列出了最有用的路径表达式: 表达式 描述 nodename 选 ...

  9. XML Xpath学习

    Xpath是一门在xml文档中查找信息的语言. Xpath可用来在xml文档中对元素和属性进行遍历. <1>路径表达式1: 斜杠(/)作为路径内部的分隔符 同一个路径有绝对路径和相对路径两 ...

随机推荐

  1. 每天一个linux命令(53):wget命令

    Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持HTTP,HTTPS和FTP协 ...

  2. Xamarin.Forms——WebView技术研究

    在Xamarin中有一些Forms原生不太好实现的内容可以考虑使用HTML.Javascript.CSS那一套前端技术来实现,使用WebView来承载显示本地或网络上的HTML文件.不像OpenUri ...

  3. 详解在visual studio中使用git版本系统(图文)

    很多人已经在使用git(或正在转移到git上),在github.com上,也看到园子里不少同学的开源项目,非常不错.但相关教程似乎不多,所以趁着我自己的开源项目源码托管(https://github. ...

  4. 【BZOJ 1901】【Zju 2112】 Dynamic Rankings 动态K值 树状数组套主席树模板题

    达神题解传送门:http://blog.csdn.net/dad3zz/article/details/50638360 说一下我对这个模板的理解: 看到这个方法很容易不知所措,因为动态K值需要套树状 ...

  5. .net架构设计读书笔记--第三章 第10节 命令职责分离(CQRS)简介(Introducing CQRS)

    一.分离查询命令 Separating commands from queries     早期的面向DDD设计方法的难点是如何设计一个类,这个类要包含域的方方面面.通常来说,任务软件系统方法调用可以 ...

  6. 【poj3348】 Cows

    http://poj.org/problem?id=3348 (题目链接) 题意 给出平面上n个点,以这n个点中的一些围成的多边形面积 div 50的最大值. Solution 凸包求面积. 很好做, ...

  7. 洛谷U5653 宋荣子的小饼干

    题目描述 楼下机房的LYL有n个妹子,分别编号为a1,a2……an,每个妹子都拥有一定数量的小饼干.有一天,saruka没有吃晚饭,饿的不要不要的,这时,他忽然想起了LYL的妹子们有小饼干可以吃.于是 ...

  8. bzoj2096 pilots

    依旧是维护两个单调队列,只是队首检查的方式略有变动 /*by SilverN*/ #include<iostream> #include<algorithm> #include ...

  9. HDU 4901 The Romantic Hero

    The Romantic Hero Time Limit: 3000MS   Memory Limit: 131072KB   64bit IO Format: %I64d & %I64u D ...

  10. javascript-如何判断一个对象为数组

    Q:如何判断一个对象是否为数组? A1:判断对象的constructor是否指向Array, 接着判断对应的特殊属性,如length,splice之类.这个很容易冒充. A2:使用instanceof ...