【问题标题】:PHP: Can't remove node from DOMDocumentPHP:无法从 DOMDocument 中删除节点
【发布时间】:2010-08-30 16:20:33
【问题描述】:

我无法从 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);
    ?>

谢谢, 约瑟夫

【问题讨论】:

  • My Code - 我对此表示怀疑。由于缺少分号、不同的函数名称、$value 而不是 $node 导致解析错误...此代码从未执行过。

标签: php domdocument


【解决方案1】:

首先,你得到了什么例外(这可能很重要)。

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

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

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

【讨论】:

    猜你喜欢
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 2011-07-28
    相关资源
    最近更新 更多