1.絕對(duì)路徑定位
以斜線 / 開頭左敌,/AAA/CCC/DDD;
2.相對(duì)路徑 //
以雙斜線 // 開頭俐镐, ?//BBB ?無論層級(jí)關(guān)系母谎,定位所有BBB元素;
//DDD/BBB 所有父元素下是DDD下的BBB元素京革;
3.相對(duì)路徑 *
/AAA/CCC/DDD/*? 選擇所有/AAA/CCC/DDD/路徑下的所有元素奇唤;
/*/*/*/BBB ?選擇所有有3個(gè)祖先元素的BBB元素;
4.相對(duì)路徑 [ ]
方塊號(hào)里的表達(dá)式可以進(jìn)一步的指定元素匹摇,其中數(shù)字表示元素在選擇集里的位置咬扇,而last()函數(shù)表示選擇集里的最后一個(gè)元素。
/AAA/BBB[1]
/AAA/BBB[last()]
5.相對(duì)路徑 @
? 選擇所有的id屬性: //@id;?
選擇有id屬性的BBB元素: //BBB[@id];?
選擇有任意屬性的BBB元素: //BBB[@*]廊勃;
選擇沒有屬性的BBB元素://BBB[not(@*)]
6.屬性的值定位
屬性的值可以被用來作為選擇的準(zhǔn)則懈贺,normalize-space函數(shù)刪除了前后尾部空格,并且把連續(xù)的空格串替換為一個(gè)單一的空格
選擇含有某屬性且其值為‘b1’的BBB元素: //BBB[@id='b1']
選擇含有屬性name且其值(在用normalize-space函數(shù)去掉前后空格后)為'bbb'的BBB元素: //BBB[normalize-space(@name)='bbb']
注:有的屬性值前或后都會(huì)人為的添加空格坡垫,易讀性好
以下為函數(shù)介紹
7. count()函數(shù)可以計(jì)數(shù)所選元素的個(gè)數(shù)
選擇含有N個(gè)BBB子元素的元素://*[count(BBB)=N]
選擇含有2個(gè)子元素的元素://*[count(*)=2]
8.name(),start-with(m,n),contains(x,y)
選擇所有名稱為BBB的元素? //*[name()='BBB']等價(jià)于//BBB
start-with(m,n) 在該函數(shù)的m參數(shù)字符串是以n參數(shù)字符開始的情況返回true
選擇所有名稱以”B“起始的元素://*[starts-with(name(),'B')]
?contains(x,y)函數(shù)當(dāng)其x字符串參數(shù)包含有y字符串參數(shù)時(shí)返回true.
選擇所有名稱包含”c“的元素://*[contains(name(),'C')]
9. string-length()
string-length函數(shù)返回字符串的字符數(shù),你應(yīng)該用<替代<, 用>代替>
選擇名稱長度為3的元素://*[string-length(name()) = 3]
10.多路徑分隔符 |
選擇所有的CCC和BBB元素 ://CCC | //BBB
選擇所有的BBB元素和所有是AAA的子元素的EEE元素:/AAA/EEE | //BBB
可以合并的路徑數(shù)目沒有限制:/AAA/EEE | //DDD/CCC | /AAA | //BBB