2013-10-03 81 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感谢您的审查,我已更新和了解也.. –