【问题标题】:Need a help on PHP domDocument需要有关 PHP domDocument 的帮助
【发布时间】:2013-05-16 19:35:17
【问题描述】:

我想将一些文本附加到具有相同类的 div 中。

$dom = new DOMdocument();  
$dom->formatOutput = true;

@$dom->loadHTMLFile('first.html');    
$xpath = new DOMXPath($dom)

$after = new DOMText('Newly appended text');

$elements = $xpath->query('//div[@class="mix"]');

foreach($elements as $element)

    {

        $element->appendChild($after);      
        //echo $dom->saveHTML();
    }

$dom->saveHTMLFile('first.html');

但是当我打开 first.html 时,附加的文本只被附加到上述类的最后一个 div。 如果我取消注释 saveHTML() 那么它显示完美的结果。只是保存后的问题。

【问题讨论】:

    标签: php domdocument


    【解决方案1】:

    您不能将同一个 DOM 节点附加到树中的多个点,这就是您在此处所做的。您每次都需要创建一个单独(但相同)的节点:

    foreach($elements as $element)
    {
        $after = new DOMText('Newly appended text'); // moved this inside the loop
        $element->appendChild($after);
    }
    

    【讨论】:

    • 嗨@Jon,你能告诉我如何附加任何随机的html代码吗?例如,$after = new DOMText('
      append
      ');或 $after = new DOMText('');内容将是普通文本或 html 甚至 php 脚本。
    • 是的,我看到了。它的工作。小错误是,如果我想添加 php 代码,例如 然后它只是删除了“?”从 php 结束。无论如何,谢谢。
    猜你喜欢
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 2014-12-26
    • 2013-08-12
    相关资源
    最近更新 更多