Есть ли способ в xpath выбрать элемент, а затем выбрать дочерние элементы этого элемента?
то есть с учетом родительского результата, как найти дочерний элемент, относящийся к this
paraent
предположим, что следующий код:
<div class="product-general" prod-id="4407">
<img src="..."/>
<div class="prod-name">Black Dog</div>
</div>
в jQuery
можно сделать:
parent = $('.product-general')
id = parent.attr('prod-id')
name = $('.prod-name', parent).text()
У меня есть следующий код (php):
$results = $xpath->query("//*[@class='product-general']");
for ($i = 0; $i < $results->length; $i++) {
$parent = $results->item($i)->nodeValue;
// todo: get prod-id and prod-name
}
Можно ли получить идентификатор и имя продукта, относящиеся кродитель?
ПРИМЕЧАНИЕ: я знаю, что могу сделать это следующим образом:
$results = $xpath->query("//*[@class='product-general']/@data-pid");
for ($i = 0; $i < $results->length; $i++) {
$pid = $results->item($i)->nodeValue;
$results2 = $xpath->query("//*[@class='product-general' and @data-pid='".$pid."']//*[contains(@class,'prod-name')]");//
$name= $results2->item(0)->nodeValue;
$this->products[] = ['pid' => $pid, 'name' => $name];
}
Но я хочу знать, есть ли что-то более элегантное, например, пример JQ
Кроме того, это решение мучительно медленно для документа с 1000 продуктами
10x