2014-03-05 44 views
3

我使用PHP简单的HTML DOM解析器为我的项目..简单的HTML DOM解析器(其它元素之后插入文本/元)

什么我卡上是目前我如何可以针对/找到的所有文本节点...并添加一个元素,甚至TEXT文本结束..

这是什么我尝试到目前为止..但想通可能有一个更好的(工作)方式? :)

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

回答

5

你的代码是好的,你刚才忘了叫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 

只需用$var更换<span>元素。

+1

其实我并不需要$ html-> save();线..它'确实'工作..但是我已经升级到您的运营商(。=)vs我古老的做法之前...(谢谢).. 然而,它最终不工作,因为我打算..有没有办法找到文本节点/元素的结束..(不只是追加到该文本元素内的文本...但找到END并追加一些文本(甚至是一个新的div/p元素? ) 谢谢 – whispers

+0

我对这个'END'的含义感到困惑,用输入'$ string'的例子编辑这个问题,并输出想要的结果,同时注意标签之间的空格是_ALSO_ text节点(这是因为我的标签之间没有空格 – 2014-03-06 09:27:42

+0

我目前正在工作..但END意味着(只是)..文本节点/元素的结束..(不在里面..但在'标签的外部').. 目前,如果我执行上面所示的操作,它可以(例如)采用LINK的TEXT ..并将INSERT var($ var或$ string)添加到该LINK的文本中,因此将其断开..或使它看起来“古怪” 举例: – whispers

相关问题