$content = '';
foreach($entry as $element) {
if (Это ненужный узел первого уровня?) {
// Тогда пропускаем его
continue;
}
else if {
// Это нужные узлы - запишем их в объект
$content ( <-- здесь должен быть объект) .= $element;
}
}
$subcontent = '';
for ($i = $content->length; --$i >= 0;) {
if ($content->item($i)->nodeName === 'span') {
continue;
}
else {
$subcontent .= $dom->saveHTML($content->item($i));
}
}
echo $subcontent;
else if {
$content ( <-- здесь должен быть объект) .= $element;
}
$content .= $element;
$content .= $dom->$element;
$content = '';
foreach($entry as $element) {
//////////////////////////////////////////////////////////////////
// Как здесь вернуть объект (в переменную $content), а не строку?
//////////////////////////////////////////////////////////////////
$content .= $dom->saveHTML($element); // ???
}
div
или span
c нужным атрибутом. Как заставить работать такое (более точное) условие xpath:if (! $xpath->evaluate( "self::div[contains(@class, 'foo' )]", $element ) ) {}
Если нужно просто заменить, то зачем нужна переменная $content?
<body>
<?php echo $content; ?>
</body>
$includes = $element->childNodes;
<a href="адрес">содержимое ссылки</a>
<a href="' . $href . '">' . $includes . '</a>
foreach($elements as $element) {
if ($element->nodeName === 'a') {
if ($element->hasAttribute('href')) {
$href = $element->getAttribute('href');
$includes = $element->childNodes;
$newElement = $dom->createTextNode('<a href="' . $href . '"></a>');
$element->parentNode->replaceChild($newElement, $element);
}
$content .= $dom->saveHTML($element);
continue;
}
else { $content .= $dom->saveHTML($element); }
}