【问题标题】:Simple HTML DOM parser (insert text/element after other element)简单的 HTML DOM 解析器(在其他元素之后插入文本/元素)
【发布时间】:2014-03-05 19:55:04
【问题描述】:

我正在为我的项目使用 PHP Simple HTML DOM Parser..

我目前坚持的是如何定位/查找所有 TEXT 节点...并在 TEXT 的末尾添加一个元素甚至 TEXT..

这是我到目前为止所尝试的......但认为可能有更好的(工作)方式? :)

$var = "INSERT TRANSLATION HERE >>";
foreach($html->find('text') as $tn){
    //$tn->outertext = $tn->makeup() . $tn->innertext . $var';
    $tn->innertext = $tn->innertext . $var;
}

【问题讨论】:

    标签: php insert add


    【解决方案1】:

    你的代码不错,只是忘记打save

    $string = "<div id='container'><div>im a text node</div><div>im another</div></div>";
    $html = str_get_html($string);
    foreach($html->find("text") as $ht) {
       $ht->innertext .= "<span>end of each text node</span>";
    }
    $html->save();
    echo $html;   // echo modified html
    

    只需将&lt;span&gt; 元素替换为您的$var

    【讨论】:

    • 其实我不需要 $html->save();行..它“确实”工作..但是我已经升级到您的操作员(.=)而不是我以前的过时方式......(非常感谢)..但是,它最终没有按我的预期工作..有没有办法找到文本节点/元素的 END ..(不仅仅是附加到该文本元素内的文本......而是找到 END 并附加一些文本(甚至是新的 div/p 元素?)谢谢
    • 我很困惑END 的含义。使用您的输入示例 $string 和所需的输出来编辑问题以查看想法。还要注意标签之间的空格是 ALSO 文本节点(那是因为我的标签之间没有空格。
    • 我目前正在工作.. 但 END 表示(仅此而已).. 文本节点/元素的 END.. (不在“标签”之内..但在“标签”之外)。 . 目前,如果我执行上面显示的操作.. 它可以(例如)获取 LINK 的 TEXT .. 并将 INSERT var($var 或 $string)附加到该 LINK 的文本中.. 从而破坏它..或让它看起来“奇怪”示例:
    • 示例:Original- My Link After- My LinkINSERT TRANSLATION HERE >> 成为 LINK.. 我想我或多或少在寻找一种方法来附加此文本,甚至是在包含(纯)文本的标签/节点/元素关闭。
    • 我的总体目标是从站点/页面中获取所有文本/段落。因此可以将其传递出去进行翻译。所以在每个纯文本块之后..我想添加(在新行,新元素上)文本:在此处插入翻译>>(我不在乎它是否包含在 p 标签或 div 标签中..等等..或只是在文本元素关闭后插入纯文本。(至于实际上并没有改变被废弃的文本。但是有一个占位符来表示翻译应该去的地方。希望现在更有意义。
    猜你喜欢
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    相关资源
    最近更新 更多