У меня есть следующий HTML структура:DOMXPath получить предок узел
<a class="class1" href="link">
<div class="class2" id="result_0">
<img imgstuffhere />
<div class="class3">
<span>text</span>
</div>
</div>
</a>
<a class="class1" href="link">
<div class="class2" id="result_0">
<img imgstuffhere />
<div class="class3">
<span>text</span>
</div>
</div>
</a>
etc....
Я разбор страницы с помощью DOMXPath. Я в состоянии получить каждый блок, делая
$items = $xpath->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' class1 ')]");
тогда я цикл по пунктам набор результатов:
foreach($items as $item){
$name = $xpath->query("descendant::*[contains(concat(' ', normalize-space(@class), ' '), ' class3 ')]", $item)->item(0)->nodeValue;
etc...
}
Моя проблема, в цикле, мне нужно, чтобы получить HREF ссылку, расположенную в узел класса1.
Я попытался поиграть с вещами предков, но это невозможно сделать.
ОТВЕТ
$link = $item->getAttribute('href');
Просто сделал трюк.
Не является ли элемент $ <'элемент '? У вас уже есть это. – Jessica
'содержит (concat ('', normalize-space (@class), ''), 'class1')' можно сделать намного более эффективным, просто написав 'contains (@class, 'class1')' – ChicagoRedSox
@Jessica Да , но как я могу получить ссылку? – user2733521