XPath 教程

okone96發表於2007-05-15
  • para 選擇上下文節點的 para 元素孩子

  • * 選擇上下文節點的所有的元素孩子

  • text() 選擇上下文節點的所有的正文節點孩子

  • @name 選擇上下文節點的 name 屬性

  • @* 選擇上下文節點的所有的屬性

  • para[1] 選擇上下文節點的第一個 para 孩子

  • para[last()] 選擇上下文節點的最後一個 para 孩子

  • */para 選擇上下文節點的所有的 para 孫子

  • /doc/chapter[5]/section[2] 選擇doc的第五個 chapter 的第二個 section

  • chapter//para 選擇上下文節點的 chapter 元素孩子的所有 para 元素子孫

  • //para 選擇文件根的所有的 para 子孫,也就是選擇上下文節點所在的文件中所有的 para 元素

  • //olist/item 選擇上下文節點所在的文件中所有的以 olist 為父的 item 元素

  • . 選擇上下文節點

  • .//para 選擇上下文節點的 para 元素子孫

  • .. 選擇上下文節點的父

  • ../@lang 選擇上下文節點的父的 lang 屬性

  • para[@type="warning"] 選擇的上下文節點的所有的有屬性 type 且值為 warningpara 孩子

  • para[@type="warning"][5] 選擇的上下文節點的所有的有屬性 type 且值為 warningpara 孩子中的第五個

  • para[5][@type="warning"] 選擇的上下文節點的第五個 para 孩子如果該節點有屬性 type 且值為 warning 的話

  • chapter[title="Introduction"] 選擇上下文節點的 chapter 孩子如果它有一個或多個 title 孩子且Introduction

  • chpater[title] 選擇的上下文節點中有一個或一個以上 title 孩子的 chpater 孩子

  • employee[@secretary and @assistant] 選擇上下文節點的所有既有 secretary 屬性又有 assistant 屬性的 employee 孩子

最重要的縮寫是 child:: 能從地點步進省略掉。實際效果上,child 是預設軸。例如,地址路徑 div/parachild::div/child::para 的縮寫。

屬性也有縮寫形式: attribute:: 能被縮寫成 @。例如,地址路徑 para[@type="warning"]child::para[attribute::type="warning"] 的縮寫,也就是選擇有 type 屬性且屬性值為 warningpara 孩子。

///descendant-or-self::node()/ 的縮寫。例如,//para/descendant-or-self::node()/child::para 的縮寫,因此選擇文件中所有的 para 元素(即使 para 元素是文件元素,也會被 //para 所選擇,因為文件元素是根節點的孩子); div//paradiv/descendant-or-self::node()/child::para 的縮寫,因此將選擇 div 孩子的所有 para 子孫。

注意:

地址路徑 //para[1] 與地址路徑 /descendant::para[1] 的含意不一樣,後者選擇第一個 para 元素子孫,前者選擇是他們的父的第一 para 孩子的所有的子孫 para 元素。

地點路進 .self::node() 的縮寫。這與 // 一起使用特別有用。例如,地址路徑 .//paraself::node()/descendant-or-self::node()/child::para 的縮寫,因此將選擇上下文節點的所有的 para 子孫元素。

同樣,地址路徑 ..parent::node() 的縮寫。例如,../titleparent::node()/child::title 的縮寫因此這將選擇上下文節點的父的 title 孩子。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/750220/viewspace-915145/,如需轉載,請註明出處,否則將追究法律責任。

相關文章