XPath學習記錄——Part1

是對xml文檔層次結構中的相關元素節點及內容進行檢索,定位的語言。

 

一.XPath中的數據模型

1.序列

在XPath中,每個表達式的結果值都是由0個或者多個項組成的一個序列。

 

序列是一個遞歸的概念:

序列是由0個或多個項(item)組成的集合,並且是有序的集合。

項本身也可以是一個序列,或者是原子值或節點。

//原子值表示基本數據類型(XML schema中定義的十幾種內置基本數據類型:整數,字符串…)

//節點位XML文檔中的元素節點:ex. <a>12</a>,<stu></stu>….

//一個原子值或一個節點可以表示一個特殊的,長度爲1的序列

 

 

序列是一個有序的集合,並且序列中的每個項都具有一個對應的位置參數(position),序列的第一個項的位置爲1.

 EX:count($S)可用來計算序列S中項的個數(序列長度),$S[i]可訪問S中的第i項,position()函數確定當前項目在序列中所處的位置。

 

序列計算表達式,以實現序列的構造,篩選以及序列項(Sequeue Item)的組合.

(1)序列構造表達式:序列是由()包含的一個列表,每個項用“,”進行分隔。

*節點集是無序的,所以不能包含取值相同的項;序列是有序的,所以能夠包含相同的項,位置不同可以相互區分;項可以是一個原子值也可以是節點。

*序列不允許嵌套

*序列構造表達式可以使用範圍操作符“to”   EX.(10,1 to 4)   等於   (10,1,2,3,4)

(2)序列篩選表達式

*可以使用判斷謂詞對序列進行篩選   EX.(1 to 100)[.mod 5 eq 0]   得到1~100中能被5整除的數

判斷謂詞表示篩選出滿足指定條件的序列項

(3)序列組合表達式:使用序列操作符union(並),intersect(交),except(差),所有這些運算,將從結果序列中刪除重複的值

 

 

2.XPath文檔樹模型

  XML文檔作爲一棵邏輯上的文檔樹進行處理,以便通過路徑對其中的節點進行尋址。

七種類型的節點:

文檔節點(Document node)

元素節點(Element node)

屬性節點(Attribute Nodes)

文本節點(Text Nodes)

命名空間節點(Namespace Nodes)

處理指令節點(PI Nodes)

註釋節點(Attribute Nodes)

 

文檔節點對於整個XML文檔,是根節點的父節點,是一個無形的節點

更節電是一個特殊的元素節點,包含整個文檔樹的其他節點

 

文檔模型樹本身有序,XPath處理過程中按照從上到下從左到右的方式依此遍歷整個文檔樹。

 

(1)節點的名稱(node name)

node-name()函數可返回指定節點名稱

文檔節點,註釋節點,文本節點沒有名稱

 

(2)節點的字符串值(String Value)

實際上是針對該節點使用XPath的string()函數所得到的字符串結果

 

(3)節點的標識(Node Identity)

is操作符比較兩個節點是否爲同一節點

等值的比較只能判斷兩個節點的內容、結構是否相等

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章