2014-03-05 64 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

相關問題