例項 1
基本的xpath語法類似於在乙個檔案系統中定位檔案,如果路徑以斜線 / 開始, 那麼該路徑就表示到乙個元素的絕對路徑
/aaa
選擇根元素aaa
/aaa/ccc
選擇aaa的所有ccc子元素
/aaa/ddd/bbb
選擇aaa的子元素ddd的所有子元素
例項 2
如果路徑以雙斜線 // 開頭, 則表示選擇文件中所有滿足雙斜線//之後規則的元素(無論層級關係)
//bbb
選擇所有bbb元素
//ddd/bbb
選擇所有父元素是ddd的bbb元素
例項 3
星號 * 表示選擇所有由星號之前的路徑所定位的元素
/aaa/ccc/ddd/*
選擇所有路徑依附於/aaa/ccc/ddd的元素
/*/*/*/bbb
選擇所有的有3個祖先元素的bbb元素
選擇所有元素
例項 4
方塊號裡的表示式可以進一步的指定元素, 其中數字表示元素在選擇集裡的位置, 而last()函式則表示選擇集中的最後乙個元素.
/aaa/bbb[1]
選擇aaa的第乙個bbb子元素
/aaa/bbb[last()]
選擇aaa的最後乙個bbb子元素
例項 5
屬性通過字首 @ 來指定
//@id
選擇所有的id屬性
id = "b1"/>
id = "b2"/>
//bbb[@id]
選擇有id屬性的bbb元素
//bbb[@name]
選擇有name屬性的bbb元素
//bbb[@*]
選擇有任意屬性的bbb元素
//bbb[not(@*)]
選擇沒有屬性的bbb元素
例項 6
屬性的值可以被用來作為選擇的準則, normalize-space函式刪除了前部和尾部的空格, 並且把連續的空格串替換為乙個單一的空格
//bbb[@id='b1']
選擇含有屬性id且其值為'b1'的bbb元素
//bbb[@name='bbb']
選擇含有屬性name且其值為'bbb'的bbb元素
//bbb[normalize-space(@name)='bbb']
選擇含有屬性name且其值(在用normalize-space函式去掉前後空格後)為'bbb'的bbb元素
例項 7
count()函式可以計數所選元素的個數
//*[count(bbb)=2]
選擇含有2個bbb子元素的元素
//*[count(*)=2]
選擇含有2個子元素的元素
//*[count(*)=3]
選擇含有3個子元素的元素
例項 8
name()函式返回元素的名稱, start-with()函式在該函式的第乙個引數字串是以第二個引數字元開始的情況返回true, contains()函式當其第乙個字串引數包含有第二個字串引數時返回true.
//*[name()='bbb']
選擇所有名稱為bbb的元素(這裡等價於//bbb)
//*[starts-with(name(),'b')]
選擇所有名稱以"b"起始的元素
//*[contains(name(),'c')]
選擇所有名稱包含"c"的元素
例項 9
string-length函式返回字串的字元數,你應該用《替代<, 用》代替》
//*[string-length(name()) = 3]
選擇名字長度為3的元素
//*[string-length(name()) < 3]
選擇名字長度小於3的元素
//*[string-length(name()) > 3]
選擇名字長度大於3的元素
例項 10
多個路徑可以用分隔符 | 合併在一起
//ccc | //bbb
選擇所有的ccc和bbb元素
/aaa/eee | //bbb
選擇所有的bbb元素和所有是aaa的子元素的eee元素
/aaa/eee | //ddd/ccc | /aaa | //bbb
可以合併的路徑數目沒有限制
XPath 簡單語法
xpath 是xml的查詢語言,和sql的角色很類似。以下面xml為例,介紹xpath 的語法。empire burlesque bob dylan 10.90 hide your heart bonnie tyler 9.90 greatest hits dolly parton 9.90 定位節...
XPath查詢語法
xpath 使用路徑表示式在 xml 文件中選取節點。節點是通過沿著路徑或者 step 來選取的。表示式描述 nodename 選取此節點的所有子節點 從根節點擊取 從匹配選擇的當前節點擊擇文件中的節點,而不考慮它們的位置 選取當前節點 選取當前節點的父節點 選取屬性 在下面的 中,我們已列出了一些...
XPath 簡單語法
xpath 是xml的查詢語言,和sql的角色很類似。以下面xml為例,介紹xpath 的語法。empire burlesque bob dylan 10.90 hide your heart bonnie tyler 9.90 greatest hits dolly parton 9.90 定位節...