麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

XPath 11個實例

2019-11-18 16:58:27
字體:
來源:轉載
供稿:網友

實例 1
基本的XPath語法類似于在一個文件系統中定位文件,如果路徑以斜線 / 開始, 那么該路徑就表示到一個元素的絕對路徑。
/AAA
選擇根元素AAA
     <AAA>
          <BBB/>
          <CCC/>
          <BBB/>
          <BBB/>
          <DDD>
               <BBB/>
          </DDD>
          <CCC/>
     </AAA> 

/AAA/CCC
選擇AAA的所有CCC子元素
     <AAA>
          <BBB/>
          <CCC/>
          <BBB/>
          <BBB/>
          <DDD>
               <BBB/>
          </DDD>
          <CCC/>
     </AAA>  

/AAA/DDD/BBB
選擇AAA的子元素DDD的所有子元素
     <AAA>
          <BBB/>
          <CCC/>
          <BBB/>
          <BBB/>
          <DDD>
               <BBB/>
          </DDD>
          <CCC/>
     </AAA>
實例 2
如果路徑以雙斜線 // 開頭, 則表示選擇文檔中所有滿足雙斜線//之后規則的元素(無論層級關系) //BBB
選擇所有BBB元素
     <AAA>
          <BBB/>
          <CCC/>
          <BBB/>
          <DDD>
               <BBB/>
          </DDD>
          <CCC>
               <DDD>
                    <BBB/>
                    <BBB/>
               </DDD>
          </CCC>
     </AAA>
 
//DDD/BBB
選擇所有父元素是DDD的BBB元素
     <AAA>
          <BBB/>
          <CCC/>
          <BBB/>
          <DDD>
               <BBB/>
          </DDD>
          <CCC>
               <DDD>
                    <BBB/>
                    <BBB/>
               </DDD>
          </CCC>
     </AAA>
實例 3
星號 * 表示選擇所有由星號之前的路徑所定位的元素
/AAA/CCC/DDD/*
選擇所有路徑依附于/AAA/CCC/DDD的元素
     <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>
 
/*/*/*/BBB
選擇所有的有3個祖先元素的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>
          <CCC>
               <BBB>
                    <BBB>
                         <BBB/>
                    </BBB>
               </BBB>
          </CCC>
     </AAA>
實例 4
方塊號里的表達式可以進一步的指定元素, 其中數字表示元素在選擇集里的位置, 而last()函數則表示選擇集中的最后一個元素.

/AAA/BBB[1]
選擇AAA的第一個BBB子元素
     <AAA>
          <BBB/>
          <BBB/>
          <BBB/>
          <BBB/>
     </AAA>
 
/AAA/BBB[last()]
 
選擇AAA的最后一個BBB子元素
     <AAA>
          <BBB/>
          <BBB/>
          <BBB/>
          <BBB/>
     </AAA>
實例 5


//@id
選擇所有的id屬性
     <AAA>
          <BBB id = /"b1/"/>
          <BBB id = /"b2/"/>
          <BBB name = /"bbb/"/>
          <BBB/>
     </AAA>
 
//BBB[@id]
選擇有id屬性的BBB元素
     <AAA>
          <BBB id = /"b1/"/>
          <BBB id = /"b2/"/>
          <BBB name = /"bbb/"/>
          <BBB/>
     </AAA>
 
//BBB[@name]
選擇有name屬性的BBB元素
     <AAA>
          <BBB id = /"b1/"/>
          <BBB id = /"b2/"/>
          <BBB name = /"bbb/"/>
          <BBB/>
     </AAA>
 
//BBB[@*]
選擇有任意屬性的BBB元素
     <AAA>
          <BBB id = /"b1/"/>
          <BBB id = /"b2/"/>
          <BBB name = /"bbb/"/>
          <BBB/>
     </AAA>
 
//BBB[not(@*)]
選擇沒有屬性的BBB元素
     <AAA>
          <BBB id = /"b1/"/>
          <BBB id = /"b2/"/>
          <BBB name = /"bbb/"/>
          <BBB/>
     </AAA>
實例 6
屬性的值可以被用來作為選擇的準則, normalize-space函數刪除了前部和尾部的空格, 并且把連續的空格串替換為一個單一的空格

//BBB[@id=/'b1/']
選擇含有屬性id且其值為/'b1/'的BBB元素
     <AAA>
          <BBB id = /"b1/"/>
          <BBB name = /" bbb /"/>
          <BBB name = /"bbb/"/>
     </AAA>
 
//BBB[@name=/'bbb/']
選擇含有屬性name且其值為/'bbb/'的BBB元素
     <AAA>
          <BBB id = /"b1/"/>
          <BBB name = /" bbb /"/>
          <BBB name = /"bbb/"/>
     </AAA>
 
//BBB[normalize-space(@name)=/'bbb/']
選擇含有屬性name且其值(在用normalize-space函數去掉前后空格后)為/'bbb/'的BBB元素
     <AAA>
          <BBB id = /"b1/"/>
          <BBB name = /" bbb /"/>
          <BBB name = /"bbb/"/>
     </AAA>
實例 7
count()函數可以計數所選元素的個數

//*[count(BBB)=2]
選擇含有2個BBB子元素的元素
     <AAA>
          <CCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </CCC>
          <DDD>
               <BBB/>
               <BBB/>
          </DDD>
          <EEE>
               <CCC/>
               <DDD/>
          </EEE>
     </AAA>
 
//*[count(*)=2]
選擇含有2個子元素的元素
     <AAA>
          <CCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </CCC>
          <DDD>
               <BBB/>
               <BBB/>
          </DDD>
          <EEE>
               <CCC/>
               <DDD/>
          </EEE>
     </AAA>
 
//*[count(*)=3]
選擇含有3個子元素的元素
     <AAA>
          <CCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </CCC>
          <DDD>
               <BBB/>
               <BBB/>
          </DDD>
          <EEE>
               <CCC/>
               <DDD/>
          </EEE>
     </AAA>
實例 8
name()函數返回元素的名稱, start-with()函數在該函數的第一個參數字符串是以第二個參數字符開始的情況返回true, contains()函數當其第一個字符串參數包含有第二個字符串參數時返回true.

//*[name()=/'BBB/']
選擇所有名稱為BBB的元素(這里等價于//BBB)
     <AAA>
          <BCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </BCC>
          <DDB>
               <BBB/>
               <BBB/>
          </DDB>
          <BEC>
               <CCC/>
               <DBD/>
          </BEC>
     </AAA>
 
//*[starts-with(name(),/'B/')]
選擇所有名稱以/"B/"起始的元素
     <AAA>
          <BCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </BCC>
          <DDB>
               <BBB/>
               <BBB/>
          </DDB>
          <BEC>
               <CCC/>
               <DBD/>
          </BEC>
     </AAA>
 
//*[contains(name(),/'C/')]
選擇所有名稱包含/"C/"的元素
     <AAA>
          <BCC>
               <BBB/>
               <BBB/>
               <BBB/>
          </BCC>
          <DDB>
               <BBB/>
               <BBB/>
          </DDB>
          <BEC>
               <CCC/>
               <DBD/>
          </BEC>
     </AAA>
實例 9
多個路徑可以用分隔符 | 合并在一起

//CCC | //BBB
選擇所有的CCC和BBB元素
     <AAA>
          <BBB/>
          <CCC/>
          <DDD>
               <CCC/>
          </DDD>
          <EEE/>
     </AAA>
 
/AAA/EEE | //BBB
選擇所有的BBB元素和所有是AAA的子元素的EEE元素
     <AAA>
          <BBB/>
          <CCC/>
          <DDD>
               <CCC/>
          </DDD>
          <EEE/>
     </AAA>
 
/AAA/EEE | //DDD/CCC | /AAA | //BBB
可以合并的路徑數目沒有限制
     <AAA>
          <BBB/>
          <CCC/>
          <DDD>
               <CCC/>
          </DDD>
          <EEE/>
     </AAA>
實例 10
child軸(axis)包含上下文節點的子元素, 作為默認的軸,可以忽略不寫.

/AAA
等價于 /child::AAA
     <AAA>
          <BBB/>
          <CCC/>
     </AAA>
 
/child::AAA
等價于/AAA
     <AAA>
          <BBB/>
          <CCC/>
     </AAA>
 
/AAA/BBB
等價于/child::AAA/child::BBB
     <AAA>
          <BBB/>
          <CCC/>
     </AAA>
 
/child::AAA/child::BBB
等價于/AAA/BBB
     <AAA>
          <BBB/>
          <CCC/>
     </AAA>
 
/child::AAA/BBB
二者都可以被合并
     <AAA>
          <BBB/>
          <CCC/>
     </AAA>

 實例 11
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>
    </AAA>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一本一道久久久a久久久精品91 | 亚洲九九爱 | 国产精品色综合 | 牛牛a级毛片在线播放 | 欧美a级大胆视频 | h色视频在线观看 | 精品国产一区二区三区久久久蜜月 | 91精品动漫在线观看 | 亚洲国产精品久久久 | 91精品国产一区二区在线观看 | 亚洲精中文字幕二区三区 | 亚洲aⅴ免费在线观看 | 日本高清无遮挡 | 亚洲午夜影院在线观看 | 大学生a级毛片免费视频 | 免费黄色入口 | 国产亚洲美女精品久久久2020 | 国产精品99久久久久久大便 | 精品一区二区久久久久久久网精 | 99精品国产一区二区三区 | 国产精品久久久久无码av | 一级国产精品一级国产精品片 | 曰批全过程120分钟免费69 | 中文字幕在线播放不卡 | 国产亚洲精品久久久闺蜜 | 亚洲码无人客一区二区三区 | 欧美一区2区三区4区公司二百 | 一级空姐毛片 | 精品一区二区久久久久久久网精 | 成人午夜影院 | 久久性生活免费视频 | 亚洲xxx在线观看 | 亚洲精品tv久久久久久久久久 | 日本一区二区不卡在线观看 | 久久久国产一级片 | 久久网站热最新地址 | 亚洲第五色综合网 | 国产精品一区在线观看 | 欧美黄色一级生活片 | 黄色1级视频 | 久久骚 |