基礎(chǔ)路徑表達(dá)式:
表達(dá)式 | 描述 |
---|---|
/ | 從根節(jié)點(diǎn)選取 |
// | 從匹配選擇的當(dāng)前節(jié)點(diǎn)選擇文檔中的節(jié)點(diǎn)宣肚,而不考慮他們的位置 |
. | 選取當(dāng)前節(jié)點(diǎn) |
.. | 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn) |
@ | 選取屬性 |
* | 選取所有 |
| | 選取若干個(gè)路徑(或的關(guān)系) |
實(shí)例:
表達(dá)式 | 詳解 |
---|---|
/html | 注釋:假如路徑起始于正斜杠(/)被碗,則此路徑始終代表到某元素的絕對路徑; |
/html/body | 選取html的子元素的所有body元素 |
//div | 選取所有div子元素艾少,而不管位置 |
//body//div | 選取屬于body元素的后代的所有div元素,而不管位置 |
//@id | 選取有id屬性的所有元素 |
//body/div[last()-1] | 選取body下倒數(shù)第二個(gè)div元素 |
//body/div[position()<3] | 選取位置小于3的div元素 |
//body/div[1]/div[position()<2] | 選取body第一個(gè)div下的位置小于2的div元素 |
//a[@id] | 選取所有具有id屬性的a元素 |
//a[@id='nav_default'] | 選取所有a元素善延,且id=nav_default |
//body//div[span>223] | 選取body元素下所有div元素腮出,且其中的span元素值大于223 |
//body//div[span>22]/strong | 選取body子元素中的div元素下的所有strong元素,且其中的span元素值須大于22 |
//a[@class='btn ban-default ml-5' or @role='button'] | 選取所有滿足class蹦误,role是或關(guān)系的a元素 |
//a[@class and @role] | 定位具備class\role屬性的所有a標(biāo)簽 |
//body/* | 匹配body下所有子標(biāo)簽 |
//li|//ul | 選取所有的li元素和ul元素 |
//span[text()='你好'] | 選取所有span內(nèi)容為你好的標(biāo)簽 |
Xpath 軸
軸名稱 | 結(jié)果 |
---|---|
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)的所有后代元素和自身 |
following | 選取文檔中當(dāng)前節(jié)點(diǎn)的結(jié)束標(biāo)簽之后的所有節(jié)點(diǎn) |
following-sibling | 選取文檔中當(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)的開始標(biāo)簽之前的所有節(jié)點(diǎn) |
preceding-sibling | 選取當(dāng)前節(jié)點(diǎn)之前的所有同級節(jié)點(diǎn) |
self | 選取當(dāng)前節(jié)點(diǎn) |
實(shí)例:
表達(dá)式 | 詳解 |
---|---|
//*[@id='course']/child::ul | 選取id值為course的元素的所有ul子元素 |
//div/attribute::id | 選取具有id屬性的所有div元素 |
//div[@id='course']/child::* | 選取id為course的元素的所有子元素 |
//div[@id='course']/descendant::li | 選取id值為course的元素的所有后代li元素 |
//*[@id='nav_default']/ancestor::li | 選擇id為nav_default節(jié)點(diǎn)的所有l(wèi)i先輩 |
//*[@id='nav_default']/parent::li | 選擇id為nav_default節(jié)點(diǎn)的所有l(wèi)i父輩 |
//*[@id='nav_default']/following::li | 選擇id為nav_default節(jié)點(diǎn)結(jié)束之后的所有l(wèi)i標(biāo)簽 |
//h4/a[1]/following-sibling::*/.. | 選取h4/a[1]標(biāo)簽結(jié)束后的同級節(jié)點(diǎn)的上一級節(jié)點(diǎn) |