У меня есть этот html:
<ul class = "details">
<li>
<svg class = "icon"><use xlink:href = "#icon-location"></use></svg>
<span>São João de Vêr, Aveiro</span>
</li>
<li>
<svg class = "icon"><use xlink:href = "#icon-contract"></use></svg>
Permanente
</li>
<li>
<svg class = "icon"><use xlink:href = "#icon-duration"></use></svg>
Horário completo
</li>
Отсюда мне нужно получить содержимое каждого li с отдельными данными (svg и текст после).
Я пробую это, но получаю только содержимое li без элемента sgv:
$dom = new \DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->loadHTML($html);
$xpath = new \DOMXPath($dom);
$div = $xpath->query('//ul[@class = "details"]');
$div = $div->item(0);
$result = $dom->saveXML($div);
dd($result);
Результат:
<ul class = "details">
<li>
<span>São João de Vêr, Aveiro</span>
</li>
<li>
Permanente
</li>
<li>
Horário completo
</li>
Ожидаемый результат:
<ul class = "details">
<li>
<svg class = "icon"><use xlink:href = "#icon-location"></use></svg>
<span>São João de Vêr, Aveiro</span>
</li>
<li>
<svg class = "icon"><use xlink:href = "#icon-contract"></use></svg>
Permanente
</li>
<li>
<svg class = "icon"><use xlink:href = "#icon-duration"></use></svg>
Horário completo
</li>
Любая идея, почему это происходит?
Спасибо @JackFleeting за этот совет :). Я отредактировал пост и добавил ожидаемый результат.
У меня работает код: ideone.com/06wsMP






Это должно работать:
$div = $xpath->query('//ul[@class = "details"]/*');
foreach($div as $d){
$result = $dom->saveXML($d);
echo($result);
}
Каков именно ваш ожидаемый результат?