У меня есть HTML, который содержит это:
<div class="test">
Outer
<div class="test">Inner 1</div>
<div class="test">Inner 2</div>
</div>
Я делаю str_replace()
для содержимого этих элементов:
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXpath($dom);
foreach($xpath->query("//div[@class='test']") as $node) {
$node->nodeValue = str_replace(" ", "X", $node->nodeValue);
}
Это должно заменить любые пробелы с "X".
Но это приводит к этой ошибке:
Предупреждение: Не удалось получить элемент DOMElement. Узел больше не существует в / path / to / my / file. php в строке 63
Это работает, если есть только один вложенный div:
<div class="test">
Outer
<div class="test">Inner 1</div>
</div>
Почему это происходит и как я могу заставить его работать?