原文地址:http://www.cnblogs.com/zhaozhan/archive/2009/09/10/1564396.html

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选取当前节点的所有命名空间节点

XPath轴指定上下文的节点和要选择节点的关系。ancestor, descendant, following, preceding 和self轴(axis)分割了XML文档(忽略属性节点和命名空间节点), 不能交迭,

//GGG/ancestor::*

<AAA>  
     <BBB>  
          <CCC/>  
          <ZZZ/>  
     </BBB>  
     <XXX>  
          <DDD>  
               <EEE/>  
               <FFF>  
                    <HHH/>  
                    <GGG>  
                         <JJJ>  
                              <QQQ/>  
                         </JJJ>  
                         <JJJ/>  
                    </GGG>  
                    <HHH/>  
               </FFF>  
          </DDD>  
     </XXX>  
     <CCC>  
          <DDD/>  
     </CCC>  
  </AAA>

//GGG/descendant::*

<AAA>  
     <BBB>  
          <CCC/>  
          <ZZZ/>  
     </BBB>  
     <XXX>  
          <DDD>  
               <EEE/>  
               <FFF>  
                    <HHH/>  
                    <GGG>  
                         <JJJ>  
                              <QQQ/>  
                         </JJJ>  
                         <JJJ/>  
                    </GGG>  
                    <HHH/>  
               </FFF>  
          </DDD>  
     </XXX>  
     <CCC>  
          <DDD/>  
     </CCC>  
   </AAA>

//GGG/preceding::*

<AAA>  
     <BBB>  
          <CCC/>  
          <ZZZ/>  
     </BBB>  
     <XXX>  
          <DDD>  
               <EEE/>  
               <FFF>  
                    <HHH/>  
                    <GGG>  
                         <JJJ>  
                              <QQQ/>  
                         </JJJ>  
                         <JJJ/>  
                    </GGG>  
                    <HHH/>  
               </FFF>  
          </DDD>  
     </XXX>  
     <CCC>  
          <DDD/>  
     </CCC>  
  </AAA>

//GGG/following::*

<AAA>  
     <BBB>  
          <CCC/>  
          <ZZZ/>  
     </BBB>  
     <XXX>  
          <DDD>  
               <EEE/>  
               <FFF>  
                    <HHH/>  
                    <GGG>  
                         <JJJ>  
                              <QQQ/>  
                         </JJJ>  
                         <JJJ/>  
                    </GGG>  
                    <HHH/>  
               </FFF>  
          </DDD>  
     </XXX>  
     <CCC>  
          <DDD/>  
     </CCC>  
  </AAA>

//GGG/self::*

<AAA>  
     <BBB>  
          <CCC/>  
          <ZZZ/>  
     </BBB>  
     <XXX>  
          <DDD>  
               <EEE/>  
               <FFF>  
                    <HHH/>  
                    <GGG>  
                         <JJJ>  
                              <QQQ/>  
                         </JJJ>  
                         <JJJ/>  
                    </GGG>  
                    <HHH/>  
               </FFF>  
          </DDD>  
     </XXX>  
     <CCC>  
          <DDD/>  
     </CCC>  
   </AAA>

//GGG/ancestor::* | //GGG/descendant::* | //GGG/following::* | //GGG/preceding::* | //GGG/self::*

<AAA>  
     <BBB>  
          <CCC/>  
          <ZZZ/>  
     </BBB>  
     <XXX>  
          <DDD>  
               <EEE/>  
               <FFF>  
                    <HHH/>  
                    <GGG>  
                         <JJJ>  
                              <QQQ/>  
                         </JJJ>  
                         <JJJ/>  
                    </GGG>  
                    <HHH/>  
               </FFF>  
          </DDD>  
     </XXX>  
     <CCC>  
          <DDD/>  
     </CCC>  
   </AAA>

XPath学习:轴(14)——总结的更多相关文章

  1. XPath学习:轴(3)——descendant

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

  2. Ext.Net学习笔记14:Ext.Net GridPanel Grouping用法

    Ext.Net学习笔记14:Ext.Net GridPanel Grouping用法 Ext.Net GridPanel可以进行Group操作,例如: 如何启用Grouping功能呢?只需要在Grid ...

  3. SQL反模式学习笔记14 关于Null值的使用

    目标:辨别并使用Null值 反模式:将Null值作为普通的值,反之亦然 1.在表达式中使用Null: Null值与空字符串是不一样的,Null值参与任何的加.减.乘.除等其他运算,结果都是Null: ...

  4. golang学习笔记14 golang substring 截取字符串

    golang学习笔记14 golang substring 截取字符串golang 没有java那样的substring函数,但支持直接根据 index 截取字符串mystr := "hel ...

  5. mybatis学习笔记(14)-查询缓存之中的一个级缓存

    mybatis学习笔记(14)-查询缓存之中的一个级缓存 标签: mybatis mybatis学习笔记14-查询缓存之中的一个级缓存 查询缓存 一级缓存 一级缓存工作原理 一级缓存測试 一级缓存应用 ...

  6. Python3+Selenium3+webdriver学习笔记14(等待判断 鼠标事件 )

    !/usr/bin/env python -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记14(等待判断 鼠标事件 )'''from selenium im ...

  7. 第2节 mapreduce深入学习:14、mapreduce数据压缩-使用snappy进行压缩

    第2节 mapreduce深入学习:14.mapreduce数据压缩-使用snappy进行压缩 文件压缩有两大好处,节约磁盘空间,加速数据在网络和磁盘上的传输. 方式一:在代码中进行设置压缩 代码: ...

  8. 并发编程学习笔记(14)----ThreadPoolExecutor(线程池)的使用及原理

    1. 概述 1.1 什么是线程池 与jdbc连接池类似,在创建线程池或销毁线程时,会消耗大量的系统资源,因此在java中提出了线程池的概念,预先创建好固定数量的线程,当有任务需要线程去执行时,不用再去 ...

  9. 【转】 C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计

    [转] C#学习笔记14——Trace.Debug和TraceSource的使用以及日志设计 Trace.Debug和TraceSource的使用以及日志设计   .NET Framework 命名空 ...

随机推荐

  1. 烟大 Contest1024 - 《挑战编程》第一章:入门 Problem A: The 3n + 1 problem(水题)

    Problem A: The 3n + 1 problem Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 14  Solved: 6[Submit][St ...

  2. 富士通F-02D 1630万像素翻盖手机docomo官方解锁送充电器

    此款富士通F-02D手机是非常漂亮的一款拿在手上十分有质感的日版翻盖手机.2011年11月上市的新款手机.1630万像素的高清摄像头,防水,带指纹锁,高清HDMI输出,非常漂亮的手机灯光设计,其性能配 ...

  3. java环境变量配置(转)

    java环境变量配置 windows xp下配置JDK环境变量: 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08: 2.安装完成后,右 ...

  4. 用VMware9 安装 mac 10.8和10.9搜集的资料

    VMware9虚拟机安装MAC OS X Mountain Lion 10.8.2详细图文教程 http://diybbs.zol.com.cn/1/34037_699.html vmware too ...

  5. 【web JSP basePath】basePath的含义

    问题1:WEB-INF的问题 今天新创建项目,在JSP中引入外部的JS文件和CSS文件,但是路径一直显示错误: 其中JSP页面引入这几个文件是这么写的: <link rel="styl ...

  6. 关于C语言中for循环的执行顺序

    for(初始值赋值操作A:终止条件B:递增操作C) {      循环体D: } 其执行次序为:A->B->D->C->B->D->C->B--.. 直到B条 ...

  7. POJ2817 WordStack(状压DP)

    题目给几个字符串,可以给它们添加前导空格,然后排列,计算每一个字符串和前一个字符串相同非空格字符相等的个数,求可能的最大个数. 状态DP: d[S][i][j]表示已经用的字符串集合S且排列的最后一个 ...

  8. LightOJ1064 Throwing Dice(DP)

    第一眼以为是概率DP,我还不会.不过看题目那么短就读读,其实这应该还不是概率DP,只是个水水的DP.. dp[n][s]表示掷n次骰子点数和为s的情况数 dp[0][0]=1 dp[i][j]=∑dp ...

  9. POJ1780 Code(欧拉路径)

    n位密码,要用尽可能短的序列将n位密码的10n种状态的子串都包括,那么要尽量地重合. 题目已经说最短的是10n + n - 1,即每一个状态的后n-1位都和序列中后一个状态的前n-1位重合. 这题是经 ...

  10. ibatis 灵活的配置文件

    <select id="selectAllMmsRepairBySth" parameterClass="hashmap" resultMap=" ...