获取匹配 xpath 的属性值

Get attribute values matching xpath

考虑以下示例 HTML:

<html>
    <head></head>
    <body>
        <a href="link1.html">link1</a>
        <a href="link2.html">link2</a>
    </body>
</html>

$x('/html/body/a/@href') 在 Chrome 开发者控制台给了我两个结果:

现在不只是匹配href,我想提取href的属性值,所以我想要的结果是一个数组["link1.html", "link2.html"]。我该怎么做?

您不能直接使用 xPath 获取属性的值,您需要在获取 href 后循环获取每个值

$x('/html/body/a/@href')[0].value
$x('/html/body/a/@href')[1].value

像这样:

$x('/html/body/a/@href').map(x => x.value)