2014-12-24 1 views
-3

나는 위의 HTML 파일을 파싱하여 HTML 파일PHP를 사용하여 HTML을 구문 분석하는 방법은 무엇입니까?

<body> 
    <div class="container"> 
    <div class="book"> 
     <b>Book Name:</b></br> 
     <span class="bookname"> Name of the Book </span></br> 
     <b>Summary:</b></br> 
     ..... 
    </div> 
    </div> 
    </body> 

을 다음했다. 나는 < span> 요소의 innertext를 인쇄하고 싶습니다. 즉

Name of the Book 

'simple_html_dom'타사 플러그인을 사용하여 구문 분석을 시도하고 있습니다.

<?php 
include_once('simple_html_dom.php'); 
$html = new simple_html_dom(); 
$html->load_file("html_file.html"); 
echo $html->find('span[class=bookname]')->innertext; 
?> 

위의 코드는 작동하지 않습니다. 내가 잘못했거나 PHP DOM 모듈을 사용하면 도움이 될 수 있다고 알려주십시오.

+1

"코드가 작동하지 않습니다"보다 좋을 것입니다. 그게 무슨 뜻인지는 알 수 없습니다. – PeeHaa

+0

테스트 할 simplehtmldom이 없지만'find()'는 반복 할 요소 인 배열이나 컬렉션을 반환한다고 가정하므로 innertext 속성이 없습니다. error_reporting을 켜거나 오류 로그를 확인하여보고되는 내용이 있는지 확인해야합니다. –

+1

그리고'find()'에 대한 문서를 읽으면 CSS 셀렉터로 요소를 찾은 다음 인덱스가 설정되면 N 번째 요소 객체를 반환하고 그렇지 않으면 객체 배열을 반환합니다. 문서를 읽는 데 약 3 초 만에 찾을 수있는 놀라운 기능입니다. –

답변

0

simple_html_dom은 jQuery (또는 CSS) 선택기를 사용하므로 find은 객체 배열 (있는 경우)을 반환합니다.

echo $html->find('span[class=bookname]', 0)->innertext; 

. 또는 더 나은 것 :

echo $html->find('span.bookname', 0)->innertext;