2013-10-03 78 views
1

我試圖從一個網頁,有一個像下面多行的href鏈接獲取HREF,但我只想要擁有<b>塊的那些的A HREF通過尋找另一個標籤

<tr bgcolor="#ffffff"> 
<td> 
    <a href="?6384593.html" style="background-color: transparent;"> 
    <span class="ts"> 
    <font size="1"> 
    <font color="#006633"> 
    </font> 
    </font> 
    <b>Lee Swanson Research Update</b> 
    <font color="#7777CC"> - Swanson Health Products</font></span> 
    </a> 
</td> 
</tr> 

在這種情況下,我使用xpath表達式「// b」來查找粗體標記,但我特別需要的是一個href鏈接。這可能與xpath?

回答

2
//b/ancestor::a[1]/@href 

試着像上面

2

以下XPATH將工作:

//a[.//*[local-name(.)='b']]/@href 

UPDATE AS @Jens ERAT建議。

//a[.//b]/@href 
+1

爲什麼使用'name(...)'?這有兩個原因是不好的,它會帶來命名空間的問題(在大多數情況下最好使用'local-name(...)'),而表達式'// a [.// b]/@ href'很多更可讀和更短,並做相同的... –

+0

@JensErat感謝您的審查,我已更新和了解也.. –