XML 學(xué)習(xí)(四) xPath基礎(chǔ)
二,XPath 術(shù)語(yǔ)
節(jié)點(diǎn)(Node):在 XPath 中,有七種類型的節(jié)點(diǎn):元素、屬性、文本、命名空間、處理指令、注釋以及文檔(根)節(jié)點(diǎn)。XML 文檔是被作為節(jié)點(diǎn)樹(shù)來(lái)對(duì)待的。樹(shù)的根被稱為文檔節(jié)點(diǎn)或者根節(jié)點(diǎn)。
基本值(或稱原子值,Atomic value):基本值是無(wú)父或無(wú)子的節(jié)點(diǎn)。
項(xiàng)目(Item):項(xiàng)目是基本值或者節(jié)點(diǎn)。
節(jié)點(diǎn)關(guān)系
父(Parent):每個(gè)元素以及屬性都有一個(gè)父,
子(Children):元素節(jié)點(diǎn)可有零個(gè)、一個(gè)或多個(gè)子,
同胞(Sibling):擁有相同的父的節(jié)點(diǎn)
先輩(Ancestor):某節(jié)點(diǎn)的父、父的父,等等,
后代(Descendant):某個(gè)節(jié)點(diǎn)的子,子的子,等等;
XPath 使用路徑表達(dá)式來(lái)選取 XML 文檔中的節(jié)點(diǎn)或節(jié)點(diǎn)集。節(jié)點(diǎn)是通過(guò)沿著路徑 (path) 或者步 (steps) 來(lái)選取的,
nodename 選取此節(jié)點(diǎn)的所有子節(jié)點(diǎn),
/ 從根節(jié)點(diǎn)選取 ,
// 從匹配選擇的當(dāng)前節(jié)點(diǎn)選擇文檔中的節(jié)點(diǎn),而不考慮它們的位置 ,
. 選取當(dāng)前節(jié)點(diǎn) ,
.. 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn) ,
@ 選取屬性 ,
謂語(yǔ)(Predicates):謂語(yǔ)用來(lái)查找某個(gè)特定的節(jié)點(diǎn)或者包含某個(gè)指定的值的節(jié)點(diǎn)。謂語(yǔ)被嵌在方括號(hào)中。函數(shù)或者表達(dá)式;
選取未知節(jié)點(diǎn):XPath 通配符可用來(lái)選取未知的 XML 元素。
* 匹配任何元素節(jié)點(diǎn)
@* 匹配任何屬性節(jié)點(diǎn)
node() 匹配任何類型的節(jié)點(diǎn)
選取若干路徑:通過(guò)在路徑表達(dá)式中使用“|”運(yùn)算符,您可以選取若干個(gè)路徑。
四,XPath Axes(坐標(biāo)軸):軸可定義某個(gè)相對(duì)于當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)集。
ancestor 選取當(dāng)前節(jié)點(diǎn)的所有先輩(父、祖父等)
ancestor-or-self 選取當(dāng)前節(jié)點(diǎn)的所有先輩(父、祖父等)以及當(dāng)前節(jié)點(diǎn)本身
attribute 選取當(dāng)前節(jié)點(diǎn)的所有屬性
child 選取當(dāng)前節(jié)點(diǎn)的所有子元素。
descendant 選取當(dāng)前節(jié)點(diǎn)的所有后代元素(子、孫等)。
descendant-or-self 選取當(dāng)前節(jié)點(diǎn)的所有后代元素(子、孫等)以及當(dāng)前節(jié)點(diǎn)本身。
following 選取文檔中當(dāng)前節(jié)點(diǎn)的結(jié)束標(biāo)簽之后的所有節(jié)點(diǎn)。
namespace 選取當(dāng)前節(jié)點(diǎn)的所有命名空間節(jié)點(diǎn)
parent 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)。
preceding 選取文檔中當(dāng)前節(jié)點(diǎn)的開(kāi)始標(biāo)簽之前的所有節(jié)點(diǎn)。
preceding-sibling 選取當(dāng)前節(jié)點(diǎn)之前的所有同級(jí)節(jié)點(diǎn)。
self 選取當(dāng)前節(jié)點(diǎn)。
步的語(yǔ)法: 軸名稱::節(jié)點(diǎn)測(cè)試[謂語(yǔ)]
五,XPath 運(yùn)算符:XPath 表達(dá)式可返回節(jié)點(diǎn)集、字符串、邏輯值以及數(shù)字。
加(+),減(-),乘(*),除(div),等于(=),不等于(!=),大于(>),小于(<),大于等于(>=),小于等于(<=),與(and),或(or),余(mod),
posted on 2008-01-10 18:57 zhhang920 閱讀(520) 評(píng)論(0) 編輯 收藏 所屬分類: JAVASCRIPT