Как получить ссылки в каждом блоке PHP DomReady?

У меня есть следующий HTML DOM:

<div class="m">
<div class="cr"><a class="link" href="1">1</a><div class="title">1</div></div>
<div class="cr"><a class="link" href="2">2</a><div class="title">2</div></div>
<div class="cr"><a class="link" href="3">3</a><div class="title">3</div></div>
</div>

Мне нужно получить в одном цикле значения: .title а также href ссылок.

Я старался:

$similar = $xpath->query('//div[@class = "cr"]');

foreach ($similar as $key => $item) {
$href = ?
$title = ?
}

2

Решение

Вы могли бы использовать SimpleXMLElement Класс для этого, как показано в фрагменте, ниже которого вы можете Быстрый тест здесь.

<?php

$html = '<div class="m">
<div class="cr"><a href="1">1</a><div class="title">1st Node Value</div></div>
<div class="cr"><a href="2">2</a><div class="title">2nd Node Value</div></div>
<div class="cr"><a href="3">3</a><div class="title">3rd Node Value</div></div>
</div>';$sXML       = new SimpleXMLElement($html);
$links      = $sXML->xpath("child::div/a");
$titles     = $sXML->xpath("child::div/div");

$arrLinks   = array();
$arrTitles  = array();

foreach($links as $link){
$arrLinks[]     = (string)$link->xpath("attribute::href")[0];
}

foreach($titles as $title){
$arrTitles[]    = (string)$title;
}

var_dump($arrLinks);
// YIELDS::
array (size=3)
0 => string '1' (length=1)
1 => string '2' (length=1)
2 => string '3' (length=1)

var_dump($arrTitles);
// YIELDS::
array (size=3)
0 => string '1st Node Value' (length=14)
1 => string '2nd Node Value' (length=14)
2 => string '3rd Node Value' (length=14)
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]