zoukankan      html  css  js  c++  java
  • XPath学习:轴(14)——总结

    原文地址: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>

  • 相关阅读:
    处在什么都想学,却又不知道怎么学的处境
    启动MongoDB shell客户端会什么会一闪而过
    Socket.io发送消息含义
    轮询、长轮询与Web Socket的前端实现
    org.apache.commons.lang3.StringUtils类中isBlank和isEmpty方法的区别
    JS学习笔记10_Ajax
    JS学习笔记9_JSON
    JS学习笔记8_错误处理
    JS学习笔记7_表单脚本
    JS学习笔记6_事件
  • 原文地址:https://www.cnblogs.com/lixiuran/p/4050179.html
Copyright © 2011-2022 走看看