XPath Query: get attribute href from a tag
domdocument, html, xpath
Solution
For the following HTML document:
<html>
<body>
<a href="http://www.example.com">Example</a>
<a href="http://www.stackoverflow.com">SO</a>
</body>
</html>
The xpath query `/html/body//a/@href` (or simply `//a/@href`) will return:
http://www.example.com
http://www.stackoverflow.com
To select a specific instance use `/html/body//a[N]/@href`,
$ /html/body//a[2]/@href
http://www.stackoverflow.com
To test for strings contained in the attribute and return the attribute itself place the check on the tag not on the attribute:
$ /html/body//a[contains(@href,'example')]/@href
http://www.example.com
Mixing the two:
$ /html/body//a[contains(@href,'com')][2]/@href
http://www.stackoverflow.com
Problem
I want to use XPath to get the `href` attribute from an `a`-tag, but it has two occurrences within the same file. How am I getting along? I need to check IF there is an `href` attribute with value $street/object, I have got this code and it does not work: ``` $product_photo = $xpath->query("//a[contains(@href,'{$object_street}fotos/')][1]"); $product_360 = $xpath->query("//a[contains(@href,'{$object_street}360-fotos/')][1]"); $product_blueprint = $xpath->query("//a[contains(@href,'{$object_street}plattegrond/')][1]"); $product_video = $xpath->query("//a[contains(@href,'{$object_street}video/')][1]"); ``` It does not return anything at all. Who can help me out?