2013-08-08 3 views
1

страницы, на другой из моих доменов, которые я хотел бы, чтобы очистить один из DIV содержит:Как скрести HTML содержимое одного DIV по идентификатору с помощью PHP

<div id="thisone"> 
    <p>Stuff</p> 
</div> 

<div id="notthisone"> 
    <p>More stuff</p> 
</div> 

Используя этот PHP ...

<?php 
    $page = file_get_contents('http://thisite.org/source.html'); 
    $doc = new DOMDocument(); 
    $doc->loadHTML($page); 
    foreach ($doc->getElementsByTagName('div') as $node) { 
     echo $doc->saveHtml($node), PHP_EOL; 
    } 
?> 

... дает мне все divs на http://thisite.org/source.html, с html. Тем не менее, я хочу только пробить div с идентификатором «thisone», но используя:

foreach ($doc->getElementById('thisone') as $node) { 

ничего не вызывает.

ответ

2
$doc->getElementById('thisone');// returns a single element with id this one 

Попробуйте $node=$doc->getElementById('thisone');, а затем распечатать $node

On сторона примечания, вы можете использовать phpQuery для jquery как syntext: pq("#thisone")

0

$doc->getElementById('thisone') возвращает одну DOMElement, а не массив, так что вы не можете перебирать его

просто сделать:

$node = $doc->getElementById('thisone'); 
echo $doc->saveHtml($node), PHP_EOL; 
0

Посмотрите руководство по PHP http://php.net/manual/en/domdocument.getelementbyid.php getElementByID возвращает элемент или NULL. Не массив, и поэтому вы не можете перебирать его.

Вместо этого

<?php 
    $page = file_get_contents('example.html'); 
    $doc = new DOMDocument(); 
    $doc->loadHTML($page); 
    $node = $doc->getElementById('thisone'); 
    echo $doc->saveHtml($node), PHP_EOL; 
?> 

При управлении php edit.php вы получите что-то вроде этого

<div id="thisone"> 
     <p>Stuff</p> 
    </div> 

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

  • Нет связанных вопросов^_^