Например так:
$string = <<<XML
<offers>
<offer id="1" available="true">
<url>
http://localhost.com/
</url>
<name>Название</name>
<picture>
http://localhost.com/pic1.png
</picture>
<picture>
http://localhost.com/pic2.png
</picture>
</offer>
<offer id="2" available="true">
<url>
http://localhost.com/
</url>
<name>Название</name>
<picture>
http://localhost.com/pic3.png
</picture>
<picture>
http://localhost.com/pic4.png
</picture>
<picture>
http://localhost.com/pic5.png
</picture>
</offer>
</offers>
XML;
$dom = new DOMDocument();
$dom->loadXML($string);
$domXpath = new DOMXpath($dom);
for ($i = 0; $i < $dom->getElementsByTagName('offer')->length; $i++) {
$xpath = sprintf('//offer[%d]/picture', $i + 1);
$pics = [];
$pictures = $domXpath->query($xpath);
foreach ($pictures as $k => $picture) {
$pics[] = trim($picture->nodeValue);
if ($k > 0) {
$picture->parentNode->removeChild($picture);
}
}
if ($pictures->length > 0) {
$pictures->item(0)->nodeValue = implode(' | ', $pics);
}
}
echo $dom->saveXML();
Рабочий пример
Но если работа более глобальная, то лучше использовать готовые библиотеки, например
DomCrawler