2010-09-12 8 views
4
<div>divbox</div> 
<p>para1</p> 
<p>para2</p> 
<p>para3</p> 
<table class="table"><tr><td></td></tr></table> 
<p>para4</p> 
<p>para5</p> 

quelqu'un pourrait me dire comment je peux analyser cette page html pour afficher seulement para1, para2 et para3? et supprime tout le reste.php - parse html page

état:
je veux chercher tout le contenu de la première<p> au premier <table class="table">.

(la première table sera toujours avoir la classe "table")

sortie:

<p>para1</p> 
<p>para2</p> 
<p>para3</p> 
+0

double possible de [Comment analyser et traiter le HTML avec PHP?] (http://stackoverflow.com/questions/3577641/how-to- analyser-et-traiter-html-avec-php) – derobert

Répondre

7
$d = new domdocument(); 
libxml_use_internal_errors(true); 
$d->loadHTML($file); 

foreach ($d->getElementsByTagName("*") as $el) { 
    if ($el->tagName == "p") 
     echo $el->textContent, "\n"; 
    elseif ($el->tagName == "table") 
     break; 
} 

Ce gives:

 
para1 
para2 
para3