2013-12-15 2 views
0

Я пытаюсь найти первый элемент div на удаленной странице, но с трудом. Вот то, что я до сих пор:Найти и распечатать первый div в HTML-документе

$url = "http://feed2all.eu/watch/193916/1/watch-skysports.html"; 
$html = file_get_contents($url); 
$doc = new DOMDocument(); // create DOMDocument 
libxml_use_internal_errors(true); 

$doc->validateOnParse = true; 
$doc->preserveWhiteSpace = false; 
$doc->loadHTML($html); // load HTML you can add $html 

$xpath = new DOMXpath($doc); 
$nodes = $xpath->query("//div"); 
foreach($nodes as $node) { 
    echo $node; 
} 

Я также попытался использовать:

$divs = $doc->getElementsByTagName('div'); 
foreach ($divs as $div) { 
    echo $div; 
} 

Edit: как эхо внутреннего HTML приобретаемой сНу

   $xpath = new DOMXpath($doc); 
      $div = $xpath->query("//div[1]")->item(0); 
      function get_inner_html($div) { 
      $innerHTML= ''; 
      $children = $div->childNodes; 
      foreach ($children as $child) { 
      $innerHTML .= $child->ownerDocument->saveXML($child); 
       } 
      echo $innerHTML; 
       } 

это дать пустую страницу

+0

Вам нужно вызвать функцию: 'get_inner_html ($ дел);' – hek2mgl

+0

@ hek2mgl пожалуйста, обновите ваш ответ соответственно с полным кодом , – user3080937

ответ

1

Если вы хотите использовать первый div:

$div = $xpath->query("//div[1]")->item(0); 

Также вы не можете использовать echo для печати DOMElement. Вы можете распечатать его значение:

echo $div->nodeValue; 

или атрибутам:

echo $div->getAttribute('foo'); 

В комментариях вы попросили способ получить innerHTML в div. А вот пример того, как получить HTML первого тега this сайта:

$url = 'http://stackoverflow.com/questions/20600265/find-print-the-first-div-in-an-html-document?noredirect=1#comment30824495_20600265'; 

$doc = new DOMDocument(); 
@$doc->loadHTML(file_get_contents($url)); 
$selector = new DOMXPath($doc); 

$div = $selector->query('//div[1]')->item(0); 
var_dump($doc->saveHTML($div)); 
+0

то как я могу отгонять исходный код div, который я получил? – user3080937

+0

Проверьте это http://php.net/manual/de/class.domelement.php#101243 – hek2mgl

+0

, пожалуйста, не публикуйте исходный код в комментариях. Это невозможно прочитать, по крайней мере для людей. Обновите вопрос и добавьте, что – hek2mgl

Смежные вопросы