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

parent轴是选取当前节点父节点,下面看简单示例:

//DDD/parent::*     获取所有节点DDD的父节点

<AAA>

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

/AAA/BBB/parent::*    得到根节点AAA,这样写在实际中没有意义。

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

/AAA/parent::*     根节点无法获取到parent

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

XPath学习:parent,child的更多相关文章

  1. HtmlAgilityPackage XPath学习

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

  2. [NHibernate]Parent/Child

    系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate ...

  3. 服务启动Apache服务,错误Parent: child process exited with status 3 -- Aborting.解决

    不能启动apache,或者使用wamp等集成包后,唯独apache服务启动后有停止,但是把东西搬到其他机器上却没事问题可能和网络有关,我查了很多资料首先找打apache的错误报告日志,发现现实诸多的调 ...

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

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

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

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

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

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

  7. xpath 学习一: 节点

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

  8. XPath 学习二: 语法

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

  9. XML Xpath学习

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

随机推荐

  1. 对android中ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解(转)

    setHomeButtonEnabled这个小于4.0版本的默认值为true的.但是在4.0及其以上是false,该方法的作用:决定左上角的图标是否可以点击.没有向左的小图标. true 图标可以点击 ...

  2. UVALive 6885 Flowery Trails 最短路枚举

    题目连接: http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=129723 题意: 给你一个n点m图的边 1到n有多条最短路 ...

  3. BZOJ 3437: 小P的牧场 斜率优化DP

    3437: 小P的牧场 Description 背景 小P是个特么喜欢玩MC的孩纸... 描述 小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这n个牧场 ...

  4. web应用配置

    tomcat 的 server.html 配置文件 加在</Host>之上 <Context path=”/itcast” docBase=”c:\news” /> path虚 ...

  5. 简单的Java Web服务器

    import java.io.FileInputStream; import java.io.OutputStream; import java.net.ServerSocket; import ja ...

  6. js上传和预览图片

    [1].[代码] [HTML]代码 跳至 [1] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  7. 端口扫描器——ZenmapKail Linux渗透测

    3.3  端口扫描器——ZenmapKail Linux渗透测​ Zenmap(端口扫描器)是一个开放源代码的网络探测和安全审核的工具.它是Nmap安全扫描工具的图形界面前端,它可以支持跨平台.使用Z ...

  8. 暴力 hihoCoder 1251 Today Is a Rainy Day (15北京C)

    题目传送门 题意:一串数字变成另一串数字,可以单个数字转变,或者一类数字转变,问最少操作次数 分析:首先一类转换比单个转换优,先枚举找出最优的映射方案,然后将零碎的操作加上.6位6进制表示map映射, ...

  9. 贪心 Codeforces Round #301 (Div. 2) A. Combination Lock

    题目传送门 /* 贪心水题:累加到目标数字的距离,两头找取最小值 */ #include <cstdio> #include <iostream> #include <a ...

  10. C# 新技巧(一)

    概述:所有代码均来自MVC源码的阅读.实际上,也是框架开发中常用的技巧. 1.使用Empty模式处理空对象 return Enumerable.Empty<ModelValidationResu ...