2011-01-27 99 views
1

我有以下結構:PHP DOMXPath - 表達選擇包含某些屬性的輸入TR

<table> 
... 
    <tr><td><input name="email" /></td></tr> 
... 
</table> 

問:什麼是選擇表達TR基於「名」的屬性「輸入」標籤?更具體地說,我想知道是否有辦法做到這一點,而不必選擇輸入,然後上層做 - > parentNode-> parentNode ...在此先感謝。

+0

您是否可以爲輸入設置ID或類元素? – Steven 2011-01-27 02:36:10

+0

好問題,+1。查看我的答案,獲取一個簡單的XPath表達式,該表達式選擇想要的`tr`元素並且不包含任何反向軸。 :) – 2011-01-27 02:46:20

回答

0

使用項目:

//table/tr[td/input/@name = 'email'] 

這意味着

選擇是table的孩子們都tr元素和有子女td有孩子input與arrtibute name其值是字符串'email'

注意:在表達式中不使用反轉軸。

3

嘗試:

//input[@name="mail"]/ancestor::tr[1] 

注:一個XPATH->查詢不會返回特定的元素,它返回一個節點列表(如果也很明顯,裏面有隻有一個項目)。你需要做選擇使用

nodeList->item(0);//returns the first item of the nodeList. 
+0

你的回答非常好(+1),我已經知道查詢返回了一個節點列表,但我不知道你可以使用祖先:: tr [1]部分;事實上,對於我來說這是一個全新的語法,因爲我是xpath的新手。 – fabio 2011-01-27 13:52:35