XPath学习:轴(3)——descendant

 转自:http://www.cnblogs.com/zhaozhan/archive/2009/09/10/1563723.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 选取当前节点的所有命名空间节点

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>

时间: 2024-10-01 03:09:25

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

HtmlAgilityPackage XPath学习

原文:HtmlAgilityPackage XPath学习 最近的开发中要用到htmlAgilityPackage, 所以记录一下XPath相关知识! XPath 简介 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历.XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上.因此,对 XPath 的理解是很多高级 XML 应用的基础. 其实对些我们并不陌生,最与XP

xpath的轴进行查找

xpath的轴有以下几种方式 • parent::* 表示当前节点的父节点元素• ancestor::* 表示当前节点的祖先节点元素• child::* 表示当前节点的子元素 /A/descendant::* 表示A的所有后代元素• self::* 表示当前节点的自身元素• ancestor-or-self::* 表示当前节点的及它的祖先节点元素• descendant-or-self::* 表示当前节点的及它们的后代元素• following-sibling::* 表示当前节点的后序所有兄弟节

XPath学习:parent,child

XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历. XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上. 推荐一个挺不错的网站:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html  里面有很不错的例子,下面的例子中红色字体表示使用对应语法获取的元素(或属性). XPath轴(XPath

XPath学习

一.基本语法 1.以 / 斜线开始,该路径表示到一个元素下的绝对路径 2.如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系) 3.星号 * 表示选择所有由星号之前的路径所定位的元素(/AAA/BBB/DDD/* 选择AAA/BBB/DDD下的所有元素:/*/*/*/BBB选择第四层级为BBB的所有元素) 4.[]和last() 方块号里的表达式可以进一步的指定元素, 其中数字表示元素在选择集里的位置, 而last()函数则表示选择集中的最后一个元素.

XML Xpath学习

Xpath是一门在xml文档中查找信息的语言. Xpath可用来在xml文档中对元素和属性进行遍历. <1>路径表达式1: 斜杠(/)作为路径内部的分隔符 同一个路径有绝对路径和相对路径两种写法 绝对路径:必须用"/"起首,后面紧跟根节点.如/step/setp 相对路径:不用"/"起首.如step/step "."表示当前节点 ".."表示当前路径的父节点 <2>路径表达式2: nodename(节点

xpath学习笔记

符号. //表示当前节点.. //父节点/ //根目录// //节点下的任意位置 高级应用:"ul//em" 表示ul节点下任意位置的em@ //含某属性的节点 //@title 那么 <li class='a' title='1'>满足 和其他组合在一起就报错| //a|b 选择a和b元素* //所有节点node() //所有节点 还包含里面的值 比如<i>1</i> 1也是一个对象元素 这是和*的不同之处text() //所有文字节点 node(

xpath 学习

[java] view plaincopy import java.io.IOException; import javax.xml.parsers.*; import javax.xml.xpath.*; import org.w3c.dom.*; import org.xml.sax.SAXException; public class XpathTest { public static void main(String[] args) throws ParserConfigurationE

scrapy爬虫必需品--------xpath学习

XPath 路径表达式 XPath 使用路径表达式来选取 XML 文档中的节点或者节点集.这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 节点 在 XPath 中,有七种类型的节点:元素.属性.文本.命名空间.处理指令.注释以及文档(根)节点.XML 文档是被作为节点树来对待的.树的根被称为文档节点或者根节点. 请看下面这个 XML 文档: <?xml version="1.0" encodin

XPath学习11:self

self  选取当前节点 self选取当前节点,单独使用没有什么意思,主要是跟其他轴一起使用,如ancestor-or-self,descendant-or-self. //CCC/self::* <AAA>       <BBB>           <CCC/>           <ZZZ>                <DDD/>                <DDD>                     <EE