perl - 为什么遵循 XPath 语句返回所有 "a"元素?

标签 perl xpath

print $tree->findvalue('//a[1]');

我正在使用 HTML::TreeBuilder::XPath在 perl 中。现在我希望上面的语句返回第二个“a”元素的值,但它返回页面中所有“a”元素的值。我不明白为什么?

最佳答案

你所拥有的将返回每个元素的第一个子元素。
所以//a[1]将按如下方式工作(结果将是 2 个节点):

X
 Y
  a <-- give you this
  a
Z
 a <-- and this
 a

试试 (//a)[1]反而

关于perl - 为什么遵循 XPath 语句返回所有 "a"元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3518614/

相关文章:

perl - 如何使用插件编写 Perl 对象?

解开文件句柄后,Perl 无法 Binmode STDOUT

xpath - Xquery:将属性值除以空格

java - Android - XPath 评估速度非常慢

perl - 是否有理由不使用 Storable 或 YAML 序列化我的(Moose)对象?

perl - 如何在下载失败时不退出?

perl - Perl 中是否有任何别名可用于引用模块名称?

python - xPath 不进入下一页

r - R中使用XML包的XPath

java - 寻找带有 Selenium 和 java 的滚动条