2013-04-16 56 views
-1

我有一個html表格,我試圖找到具有href標記的行,該行的文本內容中包含單詞「取消訂閱」。我使用LXML,蟒蛇和XPath - 我可以利用這個發現該行:在表中找到具有特定文本的href

row_to_find = table.xpath("//tr[contains(descendant::*, 'Unsubscribe')]")[0] 

但上面並沒有發現這是一個HREF內..和以下不工作..

row_to_find = tables.xpath(".//tr/*/a[contains(text(), 'Unsubscribe')]") 
+0

請提供一個示例XML和期望輸出爲未來的問題。 – Phrogz

回答

0

這兩個都可以工作:

//a[.="Unsubscribe"]/ancestor::tr 
//tr[.//a[.="Unsubscribe"]] 
  • 第一個說,「查找<a>誰se文本是'取消訂閱',然後找到祖先的元素(s)。「

  • 第二個說:「查找<tr>任何地方,但只有當它有一個後代<a>以文字‘退訂’」

都將給你誤報,如果你的表是本身包裹在另一張桌子上,因此有另一個<tr>匹配這個非常寬鬆的標準。您可以通過提供更精確的路徑來加強它,例如

//a[.="Unsubscribe"]/parent::*/parent::tr 
//tr[./*/a[.="Unsubscribe"]] 

...或(第一個),通過指定您只想要第一個(最近)<tr>

//a[.="Unsubscribe"]/ancestor::tr[1] 
相關問題