Récupérer les éléments avec xpath et DOMDocument
J'ai une liste d'annonces dans le code html ci-dessous.
Ce dont j'ai besoin est une boucle PHP pour obtenir ce qui suit les éléments de chaque annonce:
- ad URL (attribut href de
<a>
tag) - ad URL de l'image (attribut src de
<img>
tag) - titre d'annonce (contenu html de
<div class="title">
tag)
<div class="ads">
<a href="http://path/to/ad/1">
<div class="ad">
<div class="image">
<div class="wrapper">
<img src="http://path/to/ad/1/image.jpg">
</div>
</div>
<div class="detail">
<div class="title">Ad #1</div>
</div>
</div>
</a>
<a href="http://path/to/ad/2">
<div class="ad">
<div class="image">
<div class="wrapper">
<img src="http://path/to/ad/2/image.jpg">
</div>
</div>
<div class="detail">
<div class="title">Ad #2</div>
</div>
</div>
</a>
</div>
J'ai réussi à obtenir l'URL de l'annonce avec le code PHP ci-dessous.
$d = new DOMDocument();
$d->loadHTML($ads); //the variable $ads contains the HTML code above
$xpath = new DOMXPath($d);
$ls_ads = $xpath->query('//a');
foreach ($ls_ads as $ad) {
$ad_url = $ad->getAttribute('href');
print("AD URL : $ad_url");
}
Mais je n'ai pas réussi à obtenir les 2 autres éléments (url de l'image et le titre). Une idée?
Vous devez vous connecter pour publier un commentaire.
J'ai réussi à obtenir ce dont j'ai besoin avec ce code (basé sur Khuê Vu le code) :
pour d'autres éléments, vous venez de faire la même chose:
$ad_Doc->importNode($ad, True)