如何修改我的xPath来获得一个href?

时间:2013-06-25 00:12:44

标签: php xml xpath

我使用这个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>

然而,我没有获取链接,而是获得链接的外观名称。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您希望获取href属性的属性而不是nodevalue:

'//*[@id="coremain"]/div[1]/div[1]/div/div[2]/a/@href'

答案 1 :(得分:0)

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

"Name of the link"

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

参见:

编辑:我现在看到已更改的标题,您确实对href属性感兴趣。它的工作方式如上面的链接所示,只需在属性名称前加上@ - 符号,以明确您正在寻找属性:

.../a/@href

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