Aide Domdocument parser un tableau html precis

nunoonline Messages postés 1 Date d'inscription samedi 19 février 2011 Statut Membre Dernière intervention 19 février 2011 - 19 févr. 2011 à 09:08
cs_LDDL Messages postés 33 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 7 mars 2013 - 27 févr. 2011 à 10:57
bonjour

[b]pouvez vous me dire s'il est possible (avec DomDocument et php) de recuperer les données presentes uniquement dans les tableaux ayant pour class= 'tableauOK' sachant que:
- le nb de tableaux ayant pour class='tableauOK' peut varier
- le nb de tableaux ayant pour class="SYSTEM" peut aussi varier/b

ci dessous le code html à parser et le debut de code
mais je ne vois pas comment faire pour recuperer les données que des tableaux avec class='tableauOK'.
On m'a parle de DOMXPath mais je ne vois pas comment faire
merci pour votre aide
NR


 N  |Name |Results |

----

1,
TEST1,
value =1,

----

5,
TEST2,
value= 7,

----

789,
TEST3,
value=77


 DATE  |VALUE |STATUS |
----

06/01/2011,
x =12,
ok,

----

07/02/2011,
x= 1230,
NO,

----

01/02/2010,
x=11,
OK


 DATE  |VALUE |STATUS |
----

16/03/2009,
x =16,
ok,

----

12/01/2011,
x= 2,
NO,

----

01/01/2011,
x=1100,
NO



 DATE  |VALUE |STATUS |
----

16/02/2011,
x =15,
ok,

----

12/02/2011,
x=1000,
NO,

----

01/02/2011,
x=1100,
OK


<?php

/*** a new dom object ***/ 
$dom = new domDocument; 
 
/*** load the html into the object ***/ 
//$dom->loadHTML($html); 
@$dom->loadHTMLFile($html); 

/*** discard white space ***/ 
$dom->preserveWhiteSpace = false; 

 /*** the table by its tag name ***/ 
$tables = $dom->getElementsByTagName('table'); 

/*** get all rows from the table ***/ 
$rows = $tables->item(0)->getElementsByTagName('tr'); 

/*** loop over the table rows ***/ 
foreach ($rows as $row) 
{ 
   /*** get each column by tag name ***/ 
   $cols = $row->getElementsByTagName('td'); 
   /*** echo the values ***/ 
   echo $cols->item(0)->nodeValue.'
'; 
   echo $cols->item(1)->nodeValue.'
'; 
   echo $cols->item(2)->nodeValue; 
   echo '<hr />'; 
} 
?>
            
                

1 réponse

cs_LDDL Messages postés 33 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 7 mars 2013
27 févr. 2011 à 10:57
Bonjour,

Moi j'analyserai chaque ligne pour dédecter la 1ere balise <table>
http://fr2.php.net/manual/fr/function.fgets.php

puis ces fonctions te pemetront de récuperer tes données.

http://fr2.php.net/manual/fr/function.strip-tags.php

http://fr2.php.net/manual/fr/function.str-word-count.php
0
Rejoignez-nous