PHP: не удается удалить узел из DomDocument - PullRequest
2 голосов
/ 30 августа 2010

Не могу удалить узел из DomDocument (получить исключение):

Мой код:

<?php
    function filterElements($htmlString) {
        $doc = new DOMDocument();
        $doc->loadHTML($htmlString);
        $nodes = $doc->getElementsByTagName('a');
        for ($i = 0; $i < $nodes->length; $i++) {
          $node=$nodes->item($i)
          if ($value->nodeValue == 'my_link') {
           $doc->removeChild($node);
          }
        }
    }
    $htmlString = '<div>begin..</div>this tool<a name="my_link">Beo</a> great!<div>.end</div>';
    filterKeyLinksElements($htmlString);
    ?>

Спасибо, Йосеф

1 Ответ

12 голосов
/ 30 августа 2010

Во-первых, какое исключение вы получаете (это, вероятно, имеет значение).

Что касается конкретной проблемы, мое предположение будет следующим:

$node не является дочерним элементом документа. Это ребенок своего родителя. Так что вам нужно сделать:

$node->parentNode->removeChild($node);
...