xpath回顧溫習(xí)

1.絕對路徑定位

以斜線 / 開頭,/AAA/CCC/DDD;

2.相對路徑 //

以雙斜線 // 開頭, ?//BBB ?無論層級關(guān)系,定位所有BBB元素;

//DDD/BBB 所有父元素下是DDD下的BBB元素;

3.相對路徑 *

/AAA/CCC/DDD/*? 選擇所有/AAA/CCC/DDD/路徑下的所有元素;

/*/*/*/BBB ?選擇所有有3個祖先元素的BBB元素;

4.相對路徑 [ ]

方塊號里的表達(dá)式可以進(jìn)一步的指定元素,其中數(shù)字表示元素在選擇集里的位置,而last()函數(shù)表示選擇集里的最后一個元素。

/AAA/BBB[1]

/AAA/BBB[last()]

5.相對路徑 @

? 選擇所有的id屬性: //@id;?

選擇有id屬性的BBB元素: //BBB[@id];?

選擇有任意屬性的BBB元素: //BBB[@*];

選擇沒有屬性的BBB元素://BBB[not(@*)]

6.屬性的值定位

屬性的值可以被用來作為選擇的準(zhǔn)則,normalize-space函數(shù)刪除了前后尾部空格,并且把連續(xù)的空格串替換為一個單一的空格

選擇含有某屬性且其值為‘b1’的BBB元素: //BBB[@id='b1']

選擇含有屬性name且其值(在用normalize-space函數(shù)去掉前后空格后)為'bbb'的BBB元素: //BBB[normalize-space(@name)='bbb']

注:有的屬性值前或后都會人為的添加空格,易讀性好

以下為函數(shù)介紹

7. count()函數(shù)可以計數(shù)所選元素的個數(shù)

選擇含有N個BBB子元素的元素://*[count(BBB)=N]

選擇含有2個子元素的元素://*[count(*)=2]

8.name(),start-with(m,n),contains(x,y)

選擇所有名稱為BBB的元素? //*[name()='BBB']等價于//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ù)時返回true.

選擇所有名稱包含”c“的元素://*[contains(name(),'C')]

9. string-length()

string-length函數(shù)返回字符串的字符數(shù),你應(yīng)該用&lt替代<, 用&gt代替>

選擇名稱長度為3的元素://*[string-length(name()) = 3]

10.多路徑分隔符 |

選擇所有的CCC和BBB元素 ://CCC | //BBB

選擇所有的BBB元素和所有是AAA的子元素的EEE元素:/AAA/EEE | //BBB

可以合并的路徑數(shù)目沒有限制:/AAA/EEE | //DDD/CCC | /AAA | //BBB

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容