我想使用XPath从a-tag获取href属性,但它在同一个文件中有两次出现。我怎么相处?
我需要检查如果有一个href属性值$ street / object,我有这个代码,它不工作:
我需要检查如果有一个href属性值$ street / object,我有这个代码,它不工作:
$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]");
它根本不返回任何东西。谁能帮助我?
解决方法
对于以下HTML文档:
<html> <body> <a href="http://www.example.com">Example</a> <a href="http://www.stackoverflow.com">SO</a> </body> </html>
xpath query / html / body // a / @ href(或只是// a / @ href)将返回:
http://www.example.com http://www.stackoverflow.com
要选择一个特定的实例,使用/ html / body // a [N] / @ href,
$ /html/body//a[2]/@href http://www.stackoverflow.com
要测试属性中包含的字符串并返回属性本身,请将该检查放在标签上,而不是属性上:
$ /html/body//a[contains(@href,'example')]/@href http://www.example.com
混合二:
$ /html/body//a[contains(@href,'com')][2]/@href http://www.stackoverflow.com