Я пытаюсь заменить все элементы <foo>
в DOMDocument элементами <bar>
.Лучший способ сделать это, кажется, состоит в том, чтобы захватить все элементы <foo>
с помощью getElementsByTagName, а затем создать новые элементы, чтобы заменить их на.элемент, который заменяется.nodeValue и textContent оба возвращают внутренний текст, но внутренние теги удаляются.Как я могу получить что-то похожее на "innerHTML" из DOMElement?
Пример кода:
function convertTags($doc, $type) {
$bad_nodes = $doc->getElementsByTagName($type);
foreach($bad_nodes as $bad_node) {
$good_node = $doc->createElement("bar", $bad_node->nodeValue);
$bad_node->parentNode->replaceChild($good_node, $bad_node);
}
return $doc;
}