2012-01-19 3 views
0

내 자신의 템플릿 시스템에 간단한 HTML DOM 파서를 사용하고 있는데 문제가 있음을 발견했습니다.간단한 HTML DOM 파서가 업데이트되지 않음

<div class=content> 
    <div class=navigation></div> 
</div> 

내가 좋아하는 자신 만의 콘텐츠로 div.navigation를 교체하고 있습니다 : 여기

내 마크 업의

$navi= $dom->find("div.navigation",0); 
$navi->outertext = "<a class=aNavi>click me!</a>"; 

가 잘 작동 - 내가 그것을 에코 수 있지만 문제는 - 내가 메아리 전에 여전히 파서와 링크에 접근/조작하고 싶지만, 파서는 그것을 찾지 못할 것이다.

$link = $dom->find("a.aNavi"); 

파서가 새로 고쳐야처럼 널 (null) :(

이 보인다 돌아갑니다 /를 outertext을 변경 한 후 업데이트 - 어떤 아이디어가 가능하다면

+1

'a.aNavi'가 DOM에 없기 때문에이 해킹을 시도 할 수 있습니다. 이것은 개별 객체 (또는 인스턴스)의 일부 요소 일뿐입니다. – YuS

+0

하지만 소스에 있습니다. 어떻게 해결할 수 있습니까? – Fuxi

+1

'$ dom'이란 정확히 무엇입니까? 그 클래스는'find()'메서드 나'outertext' 속성이 없으므로 [DOMDocument] (http://us2.php.net/manual/en/class.domdocument.php)로 보이지 않습니다. – FtDRbwLXw6

답변

2

나는 어떤 createElement -like 표시되지 않습니다 문서가 불완전하거나 작업에 대한 잘못된 도구를 사용하거나 의미 the API reference의 방법.

내가 DOMDocument을 사용하는 것이 좋습니다 하고 DOMDocument::createElement() 방법. 그러나 Simple HTML DOM Parser를 사용하여 죽은 사람이라면 다음 해킹을 시도 할 수 있습니다.

$navi = $dom->find('div.navigation', 0); 
$navi->outertext = '<a class="aNavi">click me!</a>'; 
$dom = $dom->save(); 
$dom = str_get_html($dom); 
$link = $dom->find('a.aNavi'); 
+0

그래, 이미 그랬지만 더러운거야. :) 내가 처음에는 DOMDocument를 사용하는 것이 더 좋을 것 같아서. - 감사합니다. ! – Fuxi

관련 문제