如何使用XPath选择页面上的所有链接

njp*_*njp 2 xpath xpointer

我想编写一个标识特定HTML页面上所有链接的函数.我的想法是使用XPath,通过使用路径,如//body//a[x]增加x来遍历页面上的第一,第二,第三个链接.

在Chrome中尝试此操作时,我会加载页面http://exoplanet.eu/,并在Chrome Developer Tools JS控制台中调用$x("//body//a[1]").我期待页面上的第一个链接,但这会返回多个锚元素的列表.调用$x("//body//a[2]")返回两个锚元素.呼叫$x("//body//a[3]")什么都不返回.

我希望[x]每次递增会在页面上逐一给出每个唯一的链接,但它们似乎是分组的.我怎样才能重写这条路径,以便逐一挑选每个锚标签?

Mic*_*Kay 7

如果您想选择页面上的第一个链接,您//body//a[1]应该是(//body//a)[1].前一个表达式选择任何元素作为其父元素的第一个子元素.

但无论如何,这似乎是一件非常奇怪的事情.为什么你需要逐个链接?只需选择所有这些,作为节点列表或节点集,使用//body//a,然后迭代集合.