XPathを使用してhref
タグからa
属性を取得したいのですが、同じファイル内に2つのオカレンスがあります。どうやってやっているの?値が$ street/objectのhref
属性があるかどうかを確認する必要があります。このコードがあり、動作しません:
$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クエリ/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
2つの混合:
$ /html/body//a[contains(@href,'com')][2]/@href http://www.stackoverflow.com