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>

  • 相关阅读:
    [匈牙利] 洛谷 P2526 小狗散步
    [匈牙利] 洛谷 P1129 矩阵游戏
    [树形dp] Jzoj P5233 概率博弈
    [线段树] Jzoj P4231 寻找神格
    [状压dp][期望] 洛谷 P2473 奖励关
    [倍增][双向链表] Jzoj P3101 开车旅行
    [高精度][数学] Jzoj P3771 小Z的烦恼
    [并查集][排序] Jzoj P2940 生成输入数据
    [dfs][概率] Jzoj P2941 贿赂
    [权值线段树] Jzoj P4417 神奇的字符串
  • 原文地址:https://www.cnblogs.com/netcorner/p/2912521.html
Copyright © 2011-2022 走看看