zoukankan      html  css  js  c++  java
  • XPath基础语法(1)

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

    Xpath是一种能够在XML文档中寻找信息的语言。它通过XML文档中的元素和属性来进行导航。

    1. "/"

    /AAA:
         <AAA>
              <BBB/>
              <CCC/>
              <BBB/>
              <BBB/>
              <DDD>
                   <BBB/> 
              <DDD>
              <CCC/> 
         <AAA>


    /AAA/CCC:
    <AAA>
              <BBB/>
              <CCC/>
              <BBB/>
              <BBB/>
              <DDD>
                   <BBB/> 
              <DDD>
              <CCC/> 
         <AAA>

     /AAA/DDD/BBB:

     <AAA>
              <BBB/>
              <CCC/>
              <BBB/>
              <BBB/>
              <DDD>
                   <BBB/> 
              <DDD>
              <CCC/> 
         <AAA>

    2. "//"

     //BBB

     <AAA>
              <BBB/>
              <CCC/>
              <BBB/>
              <DDD>
                   <BBB/>
              <DDD>
              <CCC>
                   <DDD>
                        <BBB/>
                        <BBB/>
                   <DDD>
              <CCC>
         <AAA>

     //DDD/BBB

        <AAA>
              <BBB/>
              <CCC/>
              <BBB/>
              <DDD>
                   <BBB/>
              DDD>
              <CCC>
                   <DDD>
                        <BBB/>
                        <BBB/>
                   <DDD>
              <CCC>
         <AAA>

    3. "*":

     /AAA/CCC/DDD*/*/BBB

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

    //*

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

    4. [1] , last()

    /AAA/BBB[1]

         <AAA>
              <BBB/>
              <BBB/>
              <BBB/>
              <BBB/>
         AAA>

    /AAA/BBB[last()]

         <AAA>
              <BBB/>
              <BBB/>
              <BBB/>
              <BBB/>
         AAA>

    5. "@" :

    //@id

         <AAA>
              <BBB id = "b1"/>
              <BBB id = "b2"/>
              <BBB name = "bbb"/>
              <BBB/>
         AAA>

    //BBB[@id]

         <AAA>
              <BBB id = "b1"/>
              <BBB id = "b2"/>
              <BBB name = "bbb"/>
              <BBB/>
         AAA>

    //BBB[@name]

         <AAA>
              <BBB id = "b1"/>
              <BBB id = "b2"/>
              <BBB name = "bbb"/>
              <BBB/>
         AAA>

    //BBB[@*]

         <AAA>
              <BBB id = "b1"/>
              <BBB id = "b2"/>
              <BBB name = "bbb"/>
              <BBB/>
         AAA>

    //BBB[not(@*)]

         <AAA>
              <BBB id = "b1"/>
              <BBB id = "b2"/>
              <BBB name = "bbb"/>
              <BBB/>
         AAA>

    //BBB[@id='b1']

         <AAA>
              <BBB id = "b1"/>
              <BBB name = " bbb "/>
              <BBB name = "bbb"/>
         AAA>

    //BBB[@name='bbb']

         <AAA>
              <BBB id = "b1"/>
              <BBB name = " bbb "/>
              <BBB name = "bbb"/>
         AAA>

    //BBB[normalize-space(@name)='bbb']

         <AAA>
              <BBB id = "b1"/>
              <BBB name = "     bbb "/>
              <BBB name = "bbb"/>
         AAA>

    6. count() :

    //*[count(BBB)=2]

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

    //*[count(*)=2]

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

    //*[count(*)=3]

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

  • 相关阅读:
    网络编程定时器一:使用升序链表
    木秀林网,网站专注于消息队列技术的研究
    Disruptor Ringbuffer
    Elasticsearch( 插件开发)
    Elasticsearch源码分析(一)启动流程 ModuleBuilder injector
    NativeScriptEngineService 被调用流程
    JAX-RS Resteasy
    gradle eclipse 配置
    maven repository 配置
    Eclipse中部署ES源码运行
  • 原文地址:https://www.cnblogs.com/netcorner/p/2912521.html
Copyright © 2011-2022 走看看