<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的漫漫程序之旅

    專注于JavaWeb開發(fā)
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數(shù)據(jù)加載中……

    XPath詳解

    以下是本人找到的最完整最易懂的XPath教程,不敢私藏,拿出來與大家分享。

    實例 1
    基本的XPath語法類似于在一個文件系統(tǒng)中定位文件,如果路徑以斜線 / 開始, 那么該路徑就表示到一個元素的絕對路徑

    /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

    如果路徑以雙斜線 // 開頭, 則表示選擇文檔中所有滿足雙斜線//之后規(guī)則的元素(無論層級關系)

    //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

    方塊號里的表達式可以進一步的指定元素, 其中數(shù)字表示元素在選擇集里的位置, 而last()函數(shù)則表示選擇集中的最后一個元素.

    /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函數(shù)刪除了前部和尾部的空格, 并且把連續(xù)的空格串替換為一個單一的空格

    //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函數(shù)去掉前后空格后)為'bbb'的BBB元素


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

    實例 7

    count()函數(shù)可以計數(shù)所選元素的個數(shù)

    //*[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()函數(shù)返回元素的名稱, start-with()函數(shù)在該函數(shù)的第一個參數(shù)字符串是以第二個參數(shù)字符開始的情況返回true, contains()函數(shù)當其第一個字符串參數(shù)包含有第二個字符串參數(shù)時返回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>

    實例 10

    多個路徑可以用分隔符 | 合并在一起

    //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

    可以合并的路徑數(shù)目沒有限制


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

    實例 11

    child軸(axis)包含上下文節(jié)點的子元素, 作為默認的軸,可以忽略不寫.

    /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>

     

     

     

     

    實例 12

    descendant (后代)軸包含上下文節(jié)點的后代,一個后代是指子節(jié)點或者子節(jié)點的子節(jié)點等等, 因此descendant軸不會包含屬性和命名空間節(jié)點.

    /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>

     

     

     

     

    實例 13

    parent軸(axis)包含上下文節(jié)點的父節(jié)點, 如果有父節(jié)點的話

    //DDD/parent::*

    選擇DDD元素的所有父節(jié)點


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

     

     

     

     

    實例 14

    ancestor軸(axis)包含上下節(jié)點的祖先節(jié)點, 該祖先節(jié)點由其上下文節(jié)點的父節(jié)點以及父節(jié)點的父節(jié)點等等諸如此類的節(jié)點構(gòu)成,所以ancestor軸總是包含有根節(jié)點,除非上下文節(jié)點就是根節(jié)點本身.

    /AAA/BBB/DDD/CCC/EEE/ancestor::*

    選擇一個絕對路徑上的所有節(jié)點


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

    //FFF/ancestor::*

    選擇FFF元素的祖先節(jié)點


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

     

     

     

     

    實例 15

    following-sibling軸(axis)包含上下文節(jié)點之后的所有兄弟節(jié)點

    /AAA/BBB/following-sibling::*



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

    //CCC/following-sibling::*



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

     

     

     

     

    實例 16

    preceding-sibling 軸(axis)包含上下文節(jié)點之前的所有兄弟節(jié)點

    /AAA/XXX/preceding-sibling::*



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

    //CCC/preceding-sibling::*



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

     

     

     

     

    實例 17

    following軸(axis)包含同一文檔中按文檔順序位于上下文節(jié)點之后的所有節(jié)點, 除了祖先節(jié)點,屬性節(jié)點和命名空間節(jié)點

    /AAA/XXX/following::*



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

    //ZZZ/following::*



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

     

     

     

     

    實例 18

    preceding軸(axis)包含同一文檔中按文檔順序位于上下文節(jié)點之前的所有節(jié)點, 除了祖先節(jié)點,屬性節(jié)點和命名空間節(jié)點

    /AAA/XXX/preceding::*



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

    //GGG/preceding::*



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

     

     

     

     

    實例 19

    descendant-or-self 軸(axis)包含上下文節(jié)點本身和該節(jié)點的后代節(jié)點

    /AAA/XXX/descendant-or-self::*



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

    //CCC/descendant-or-self::*



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

     

     

     

     

    實例 20

    ancestor-or-self 軸(axis)包含上下文節(jié)點本身和該節(jié)點的祖先節(jié)點

    /AAA/XXX/DDD/EEE/ancestor-or-self::*



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

    //GGG/ancestor-or-self::*



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

     

     

     

     

    實例 21

    ancestor, descendant, following, preceding 和self軸(axis)分割了XML文檔(忽略屬性節(jié)點和命名空間節(jié)點), 不能交迭, 而一起使用則包含所有節(jié)點

    //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/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/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/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>

     

     

     

     

    實例 22

    div運算符做浮點除法運算, mod運算符做求余運算, floor函數(shù)返回不大于參數(shù)的最大整數(shù)(趨近于正無窮), ceiling返回不小于參數(shù)的最小整數(shù)(趨近于負無窮)

    //BBB[position() mod 2 = 0 ]

    選擇偶數(shù)位置的BBB元素


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

    //BBB[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]

    選擇中間的BBB元素


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

    //CCC[ position() = floor(last() div 2 + 0.5) or position() = ceiling(last() div 2 + 0.5) ]

    選擇中間的CCC元素


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



    posted on 2008-04-25 17:02 々上善若水々 閱讀(2396) 評論(0)  編輯  收藏 所屬分類: WebService

    主站蜘蛛池模板: 亚洲av永久无码精品天堂久久| 亚洲国产高清在线一区二区三区 | 婷婷亚洲综合五月天小说| 亚洲日韩aⅴ在线视频| 国产亚洲精久久久久久无码| 中文字幕在亚洲第一在线| 91麻豆精品国产自产在线观看亚洲| 亚洲精品成人在线| 国产亚洲精品看片在线观看| 超清首页国产亚洲丝袜| 国产精品国产亚洲精品看不卡| 亚洲av无码精品网站| 亚洲无删减国产精品一区| 亚洲视频在线免费看| 国产亚洲国产bv网站在线| 亚洲欧洲精品成人久久曰| 久久精品国产亚洲av瑜伽| 日本激情猛烈在线看免费观看| 一级特级女人18毛片免费视频| 国产va免费精品| 免费国产黄网站在线观看视频| 69av免费观看| 啦啦啦在线免费视频| 亚洲欧洲中文日韩av乱码| 久久精品国产亚洲网站| 亚洲国产视频一区| 亚洲AV无码一区二区一二区| 一区二区三区精品高清视频免费在线播放 | 免费无码又爽又高潮视频 | 曰批视频免费40分钟试看天天| 欧美a级在线现免费观看| 日本不卡在线观看免费v| 久久久久国产亚洲AV麻豆| 久久久亚洲欧洲日产国码农村| 亚洲大尺码专区影院| 国产精品亚洲专一区二区三区| 在线免费播放一级毛片| 狼群影院在线观看免费观看直播| 永久免费看bbb| 亚洲国产综合无码一区| 国产成人精品日本亚洲11|