Аналогичный вопрос прошлой ночи, у меня нет доступа к редактированию исходного HTML-кода, и я пытаюсь проанализировать много данных с веб-сайта, чтобы сравнить цены на товары. По большей части это работает, но сейчас я пытаюсь сделать его более эффективным, быстрым и легким для чтения моего спагетти-кода.
У меня есть следующий тестовый код; и что я хочу сделать, это только вернуть атрибут содержимого (например, thisiswhatiwant) , если значение_узла для productType равно Stocked и ничего больше.
<div id="productListing">
<div class="productDetail">
<span class="productType">Stocked</span>: <span class="productStock"><span class='productContent' content='thisiswhatiwant'></span></span>
</div>
<div class="productDetail">
<span class="productType">Non-stocked</span>: <span class="productStock"><span class='productContent' content='xyz'></span></span>
</div>
…
<div class="productDetail">
<span class="productType">Non-stocked</span>: <span class="productStock"><span class='productContent' content='123'></span></span>
</div>
</div>
Это запрос Xpath, который у меня есть до сих пор, но я либо упускаю что-то жизненно важное, либо что-то в моем мозгу просто еще не включилось.
//div[@id="productListing"]/div[@class="productDetail"]/span[@class="productStock"]/preceding-sibling::span[text()="Stocked"]
По сути, я хочу вывести из приведенного выше тестового кода:
<?
echo "Output: " . $dom->getAttribute('content');
?>
Output: thisiswhatiwant
У кого-нибудь есть идеи?