2014-03-05 7 views
3

내 프로젝트에 대한 PHP 간단한 HTML DOM 파서를 사용하고 있습니다 ..간단한 HTML DOM 파서 (다른 요소 다음 삽입 텍스트/요소)

나는 현재에 붙어 나는/대상 모든 텍스트 노드를 찾을 수있는 방법입니다하고있어 ... 그리고 텍스트의 끝 부분에 요소 또는 텍스트를 추가하십시오.

여기에 지금까지 시도한 것은 무엇입니까?하지만 더 나은 (작동하는) 방법이있을 것이라고 생각하십니까? :)

$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()가 필요하지 않았다. 라인 .. 그것은 작동하지 않습니다 .. 그러나 나는 당신의 운영자 (. =)와 그것을하기 전에 나의 옛날 방식 (... 덕분에)으로 업그레이드했습니다 .. 그러나 그것은 의도 한대로 작동하지 않게되었습니다 .. 거기에 텍스트 노드/요소의 끝을 찾을 수있는 방법입니다 .. (그냥 텍스트 요소 안에 텍스트를 추가하지 ...하지만 끝을 찾아 일부 텍스트 (또는 심지어 새로운 div/p 요소를 추가?) 감사합니다. – whispers

+0

이'END '의 의미를 혼란스럽게합니다. 입력 내용'$ string'의 예와 아이디어를보기 위해 원하는 결과를 편집하십시오. 태그 사이의 공백은 _ALSO_ 텍스트 노드 그게 내 태그 사이에 공백이 없기 때문에. –

+0

나는 현재 직장에서 ..하지만 끝은 (그냥) .. 텍스트 노드/요소의 끝 .. (안쪽 ..하지만 '태그의 바깥 쪽 ') .. 현재 위의 내용을 수행하면 .. LINK ..의 TEXT를 가져 와서 INSERT var ($ var 또는 $ string)을 해당 LINK의 텍스트에 추가 할 수 있습니다. 이 '이상한'보이게 예 : – whispers

관련 문제