2013-09-25 6 views
1

전체 페이지에 대해 HTML을 포함하는 String이 주어지면 본문의 innerHTML 만 원한다. HTML에서 직접 파싱하는 것이 아니라 String에서 요소를 만들고 나서 직접 몸체를 가져 오는 것이 더 쉬워 보입니다.문자열에서 DOM 가져 오기

몇 가지 관련이 있지만 작동하지 못했습니다. 더 이상 질문을 찾을 수 없습니다.

xmlhttp = new XMLHttpRequest(); 
xmlhttp.onreadystatechange=function() 
{ 
    var ret = xmlhttp.responseText + ""; 

    if(xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     alert(ret); 
    } 
} 
xmlhttp.open("GET", "http://url.php", false); 
xmlhttp.send(); 

지금 당장이 아약스 요청을 받았지만 반환 시체 만 필요합니다.

나는 document.createElement(ret).bodynew Element(ret).body을 시도했지만 작동하지 않았습니다.

답변

4
var helper = document.createElement("html"); 
helper.innerHTML = ret;   
body = helper.querySelector("body"); //Or getElementsByTagName("body")[0] 
+0

'ret.body'처럼, 몸의 내용을 얻을 후이 작업을 수행 할 simple_html_dom를 사용하고, PHP를 사용하여 전체 페이지의 HTML을 얻고, 수 또는 '도우미.'? – Cruncher

+0

'helper.innerHTML = ret;'에 오류가 있습니다. "innerHTML 속성을 설정할 수 없습니다.이 작업의 대상 요소가 잘못되었습니다." – Cruncher

+0

@Cruncher 감사합니다. –

-1

당신이

$html=file_get_html("url.php"); 
$body=$html->find("body"); 
$echo $body->plaintext