0

我使用这个 xPath

$url = extractNodeValue('//*[@id="coremain"]/div[1]/div[1]/div/div[2]/a', $xPath);

从此 HTML 中获取链接

<a href="http://www.domain.com" class="summary url" style="color: rgb(198, 35, 35);">Name of the link</a>

但是,我没有获得链接,而是获得了链接的出现名称。我怎样才能解决这个问题?

4

2 回答 2

0

您想获取 href 属性的属性而不是节点值:

'//*[@id="coremain"]/div[1]/div[1]/div/div[2]/a/@href'
于 2013-06-25T00:20:51.000 回答
0

这取决于extractNodeValue()实际执行的操作(并且您没有共享代码),但是通过其名称它提取节点值。<a>并且元素的节点值为

"Name of the link"

因此,您应该指定要检索其值的节点而不是其值。该<a>元素通常称为链接,因此不知道您的意思。大概是href属性

另见:

编辑:我现在看到更改的标题,您确实对该href属性感兴趣。它的工作原理如上面链接中所述,只需在属性名称前加上@-symbol 即可明确您正在寻找一个属性:

.../a/@href

这是在寻找元素的href属性。<a>Xpath 中的元素是它们所拥有的属性的父级。但是属性是没有孩子的。?!这与 DOM 不同,请参见:

于 2013-06-25T00:21:18.310 回答