У меня есть следующая структура html:
<li id="REQUIRED_ITEM_1" class="listing-post">
<a class="listing-thumb" href="blah" title="blah" data-palette-listing-image="">
<img src="REQUIRED_ITEM_2" width="75" height="75" alt="blah"> </a>
<div class="listing-detail ">
<div class="listing-title">
<div class="listing-icon hidden"></div>
<a href="REQUIRED_ITEM_3" class="title" title="REQUIRED_ITEM_4">blah</a>
<div class="listing-maker">
<span class="name wrap"><a href="REQUIRED_ITEM_5">blah</a></span>
</div>
</div>
<div class="listing-date">
REQUIRED_ITEM_6
</div>
<div class="listing-price">
Sold
</div>
</div>
</li>
На одной странице несколько десятков таких <li>
, все с разными id и контентом. Контент, который мне нужен, помечен как REQUIRED_ITEM_1 - REQUIRED_ITEM_6.
Я собираю данные из этих <li>
с помощью Xpath.
Вот код, который я использую:
foreach($xpath->query("//li[@class='listing-post']") as $link) {
$REQUIRED_ITEM_1 = $link->getAttribute('id');
$REQUIRED_ITEM_2 = $xpath->query(".//img", $link)->item(0)->getAttribute('src');
$REQUIRED_ITEM_3 = $xpath->query(".//a", $link)->item(1)->getAttribute('href');
$REQUIRED_ITEM_4 = $xpath->query(".//a", $link)->item(1)->getAttribute('title');
$REQUIRED_ITEM_5 = $xpath->query(".//a", $link)->item(2)->getAttribute('href');
$REQUIRED_ITEM_6 = $xpath->query("./div/text", $link)->item(4);
}
Он работает так, как предполагалось, для первых 5 REQUIRED_ITEM, однако кажется, что код для получения текста, содержащегося в listing-date
div (REQUIRED_ITEM_6), неверен.
Кроме того, это лучший способ проанализировать мой html и собрать данные, или есть лучший подход?