me.at.coding
me.at.coding

Reputation: 17744

Get attribute values matching xpath

Consider the following sample HTML:

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

$x('/html/body/a/@href') in the Chrome developer console gives me two results: enter image description here

Now instead of just matching href, I want to extract the attribute values of href, so the result I want is an array ["link1.html", "link2.html"]. How can I do that?

Upvotes: 4

Views: 1858

Answers (1)

Alexandre Elshobokshy
Alexandre Elshobokshy

Reputation: 10922

You can't get an attribute's value directly using xPath, you'll need, after getting the href, to loop over them to get each value

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

Something like this :

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

Upvotes: 3

Related Questions