2010-08-30 57 views
1
删除节点

我无法从删除的DomDocument节点(获得除外):PHP:不能从的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); 
    ?> 

感谢, 优素福

+0

你会得到什么异常? – Gumbo 2010-08-30 16:24:09

+5

'我的代码' - 我怀疑这一点。解析错误,因为缺少分号,不同的函数名称,$ value而不是$ node ...此代码从未执行过。 – VolkerK 2010-08-30 16:24:17

+0

[如何用DOMDocument删除元素?](http://stackoverflow.com/questions/15272726/how-to-delete-element-with-domdocument) – Templar 2014-07-18 15:09:14

回答

11

第一关闭,你会得到什么例外(这可能很重要)。

至于具体的问题,我的猜测是如下::

$node不是文档的一个孩子。这是其父母的孩子。所以你需要这样做:

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