泰仔在線

          java學(xué)習(xí),心情日記,繽紛時(shí)刻
          posts - 100, comments - 34, trackbacks - 0, articles - 0

          (整理自:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html

          簡(jiǎn)介  

          XPath由W3C的 XPath 1.0 標(biāo)準(zhǔn) 描述.本教程通過實(shí)例來展示XPath的一些特性.

          你可以從以下內(nèi)容開始:

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

          /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ī)則的元素(無論層級(jí)關(guān)系)
          //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。星號(hào) * 表示選擇所有由星號(hào)之前的路徑所定位的元素
          /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個(gè)祖先元素的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。方塊號(hào)里的表達(dá)式可以進(jìn)一步的指定元素, 其中數(shù)字表示元素在選擇集里的位置, 而last()函數(shù)則表示選擇集中的最后一個(gè)元素.
          /AAA/BBB[1]
          選擇AAA的第一個(gè)BBB子元素

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

          /AAA/BBB[last()]
          選擇AAA的最后一個(gè)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。屬性的值可以被用來作為選擇的準(zhǔn)則, normalize-space函數(shù)刪除了前部和尾部的空格, 并且把連續(xù)的空格串替換為一個(gè)單一的空格
          //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ù)可以計(jì)數(shù)所選元素的個(gè)數(shù)
          //*[count(BBB)=2]
          選擇含有2個(gè)BBB子元素的元素

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

          //*[count(*)=2]
          選擇含有2個(gè)子元素的元素

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

          //*[count(*)=3]
          選擇含有3個(gè)子元素的元素

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

          8。name()函數(shù)返回元素的名稱, start-with()函數(shù)在該函數(shù)的第一個(gè)參數(shù)字符串是以第二個(gè)參數(shù)字符開始的情況返回true, contains()函數(shù)當(dāng)其第一個(gè)字符串參數(shù)包含有第二個(gè)字符串參數(shù)時(shí)返回true.
          //*[name()='BBB']
          選擇所有名稱為BBB的元素(這里等價(jià)于//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。string-length函數(shù)返回字符串的字符數(shù),你應(yīng)該用&lt;替代<, 用&gt;代替>
          //*[string-length(name()) = 3]
          選擇名字長(zhǎng)度為3的元素

               <AAA>
                    <Q/>
                    <SSSS/>
                    <BB/>
                    <CCC/>
                    <DDDDDDDD/>
                    <EEEE/>
               </AAA>

          //*[string-length(name()) < 3]
          選擇名字長(zhǎng)度小于3的元素

               <AAA>
                    <Q/>
                    <SSSS/>
                    <BB/>
                    <CCC/>
                    <DDDDDDDD/>
                    <EEEE/>
               </AAA>

          //*[string-length(name()) > 3]
          選擇名字長(zhǎng)度大于3的元素

               <AAA>
                    <Q/>
                    <SSSS/>
                    <BB/>
                    <CCC/>
                    <DDDDDDDD/>
                    <EEEE/>
               </AAA>

          10。多個(gè)路徑可以用分隔符 | 合并在一起
          //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é)點(diǎn)的子元素, 作為默認(rèn)的軸,可以忽略不寫.
          /AAA
          等價(jià)于 /child::AAA

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

          /child::AAA
          等價(jià)于/AAA

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

          /AAA/BBB
          等價(jià)于/child::AAA/child::BBB

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

          /child::AAA/child::BBB
          等價(jià)于/AAA/BBB

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

          /child::AAA/BBB
          二者都可以被合并

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

          12。descendant (后代)軸包含上下文節(jié)點(diǎn)的后代,一個(gè)后代是指子節(jié)點(diǎn)或者子節(jié)點(diǎn)的子節(jié)點(diǎn)等等, 因此descendant軸不會(huì)包含屬性和命名空間節(jié)點(diǎn).
          /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é)點(diǎn)的父節(jié)點(diǎn), 如果有父節(jié)點(diǎn)的話
          //DDD/parent::*
          選擇DDD元素的所有父節(jié)點(diǎn)

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

          14。ancestor軸(axis)包含上下節(jié)點(diǎn)的祖先節(jié)點(diǎn), 該祖先節(jié)點(diǎn)由其上下文節(jié)點(diǎn)的父節(jié)點(diǎn)以及父節(jié)點(diǎn)的父節(jié)點(diǎn)等等諸如此類的節(jié)點(diǎn)構(gòu)成,所以ancestor軸總是包含有根節(jié)點(diǎn),除非上下文節(jié)點(diǎn)就是根節(jié)點(diǎn)本身.
          /AAA/BBB/DDD/CCC/EEE/ancestor::*
          選擇一個(gè)絕對(duì)路徑上的所有節(jié)點(diǎn)

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

          //FFF/ancestor::*
          選擇FFF元素的祖先節(jié)點(diǎn)

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

          15。following-sibling軸(axis)包含上下文節(jié)點(diǎn)之后的所有兄弟節(jié)點(diǎn)
          /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é)點(diǎn)之前的所有兄弟節(jié)點(diǎn)
          /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é)點(diǎn)之后的所有節(jié)點(diǎn), 除了祖先節(jié)點(diǎn),屬性節(jié)點(diǎn)和命名空間節(jié)點(diǎn)
          /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。following軸(axis)包含同一文檔中按文檔順序位于上下文節(jié)點(diǎn)之前的所有節(jié)點(diǎn), 除了祖先節(jié)點(diǎn),屬性節(jié)點(diǎn)和命名空間節(jié)點(diǎn)
          /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é)點(diǎn)本身和該節(jié)點(diǎn)的后代節(jié)點(diǎn)
          /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é)點(diǎn)本身和該節(jié)點(diǎn)的祖先節(jié)點(diǎn)
          /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é)點(diǎn)和命名空間節(jié)點(diǎn)), 不能交迭, 而一起使用則包含所有節(jié)點(diǎn)
          //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運(yùn)算符做浮點(diǎn)除法運(yùn)算, mod運(yùn)算符做求余運(yùn)算, floor函數(shù)返回不大于參數(shù)的最大整數(shù)(趨近于正無窮), ceiling返回不小于參數(shù)的最小整數(shù)(趨近于負(fù)無窮)
          //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>

          主站蜘蛛池模板: 会宁县| 定边县| 黔西县| 石阡县| 宣威市| 独山县| 于都县| 汉沽区| 东安县| 夏津县| 阳城县| 峨边| 焦作市| 雷州市| 克拉玛依市| 万源市| 巨鹿县| 观塘区| 岑溪市| 西华县| 潜江市| 镇平县| 丰镇市| 垣曲县| 潞西市| 崇信县| 浦北县| 宜春市| 屏东市| 波密县| 政和县| 平定县| 且末县| 宣汉县| 河曲县| 嵊泗县| 察隅县| 澜沧| 神池县| 原阳县| 江津市|