我有一個HTML文檔,其中有包含可能會或可能不會有一個類,例如行的表:如何在類名未知時獲取元素?
<tr class="">
<th>Name</th>
<td class="row-text">Myname</td>
</tr>
在上面的例子中,該行沒有一個類。不過,我需要獲取列值(即MyName
)。這種行中唯一的唯一值就是標題標籤。
有沒有一種方法可以通過使用XPath的標題值來獲取正確的行?
我有一個HTML文檔,其中有包含可能會或可能不會有一個類,例如行的表:如何在類名未知時獲取元素?
<tr class="">
<th>Name</th>
<td class="row-text">Myname</td>
</tr>
在上面的例子中,該行沒有一個類。不過,我需要獲取列值(即MyName
)。這種行中唯一的唯一值就是標題標籤。
有沒有一種方法可以通過使用XPath的標題值來獲取正確的行?
是的,你可以用following-sibling
axis做到這一點:
//th[. = 'Name']/following-sibling::td
或者,通過tr
父元素:
//tr[th = 'Name']/td
@alecxe答案是正確的。我想補充其他類似的替代品:
這個看起來所有tr
與包含'Name'
爲子(如果有一個以上的元素與文本「名稱」作爲他們的內容,他們會的一部分th
也被選中);並選擇tr
//tr[contains(th, 'Name')]/td
這等類似於裏面的td
,但只給你與精確匹配的元素,也需要照顧正常化的空格,這是因爲有時完全匹配有用沒有找到,因爲在文本之前可能存在空格或換行符以防止完全匹配。它發現th
移動到父(..
)終於到了td
//th[normalize-space(text()) = 'Name']/../td
記住,你可以使用$x("some/xpath")
功能在Chrome和Firefox的控制檯來檢查的XPath;類似於CSS選擇器的$("some css")
。
XPath可以在JavaScript中使用CSS選擇器,如JQuery嗎? – Matthew
@Matt是的,像'「// * [包含(@ class,'my_css_class')]'' –