Bonsoir à tous!
Voilà je vous expose mon problème.
J'ai une page HTML distante qui contient au milieu de son code source un tableau. Voici une version abrégée de ce tableau (trop grand pour le forum) :
J'aimerais bien récupérer ce tableau pour l'insérer dans ma page (en gros copier coller le code source de mon tableau en gardant les balises, l'information sur les classes CSS, etc). J'ai pu trouver des méthodes qui s'en approchent mais je n'y suis toujours pas arrivé
Première méthode que j'ai trouvé là (assez novice en la matière je ne fais de copier des méthodes)
C'est presque ça mais cette méthode ne fait qu'afficher le contenu du tableau en supprimant toutes les balises
(toutefois elle garde les balises <B></B> contrairement à la seconde méthode).
J'ai trouvé une autre méthode avec un code plus simple (je préfèrerais utiliser cette méthode plutôt que la première) mais qui ramène le même résultat (ne garde que le contenu du tableau sans les balises) :
Savez-vous comment je pourrais faire ?
Merci à tous pour votre attention !
Modifié par MHN (20 Apr 2009 - 21:02)

Voilà je vous expose mon problème.
J'ai une page HTML distante qui contient au milieu de son code source un tableau. Voici une version abrégée de ce tableau (trop grand pour le forum) :
<table width="98%" class="ms-tables-s1" cellspacing="2" cellpadding="2">
<tr>
<th>Pos.</th>
<th>Team</th>
<th>P</th>
<th>W</th>
<th>D</th>
<th>L</th>
<th>F</th>
<th>A</th>
<th>B</th>
<th>Pts</th>
</tr>
<tr class="ms-even">
<td>1.</td>
<td width="30%">
<B>Chiefs</B>
</td>
<td>9</td>
<td>6</td>
<td>0 <td>3</td>
<td>257</td>
<td>174</td>
<td>7</td>
<td>31</td>
</tr>
<tr class="ms-odd">
<td>2.</td>
<td width="30%">
<B>Sharks</B>
</td>
<td>10</td>
<td>7</td>
<td>0 <td>3</td>
<td>221</td>
<td>181</td>
<td>2</td>
<td>31</td>
</tr>
</table>
J'aimerais bien récupérer ce tableau pour l'insérer dans ma page (en gros copier coller le code source de mon tableau en gardant les balises, l'information sur les classes CSS, etc). J'ai pu trouver des méthodes qui s'en approchent mais je n'y suis toujours pas arrivé

Première méthode que j'ai trouvé là (assez novice en la matière je ne fais de copier des méthodes)
<?php
function DOMinnerHTML($element)
{
$innerHTML = "";
$children = $element->childNodes;
foreach ($children as $child)
{
$tmp_dom = new DOMDocument();
$tmp_dom->appendChild($tmp_dom->importNode($child, true));
$innerHTML.=trim($tmp_dom->saveHTML());
}
return $innerHTML;
}
?>
<?php
$dom= new DOMDocument();
$dom->loadHTMLFile("addressedemonfichier");
$dom->preserveWhiteSpace = false;
$domTable = $dom->getElementsByTagName("table");
foreach ($domTable as $tables)
{
if($tables->getAttribute('class') == 'ms-tables-s1')
echo DOMinnerHTML($tables);
}
?>
C'est presque ça mais cette méthode ne fait qu'afficher le contenu du tableau en supprimant toutes les balises

J'ai trouvé une autre méthode avec un code plus simple (je préfèrerais utiliser cette méthode plutôt que la première) mais qui ramène le même résultat (ne garde que le contenu du tableau sans les balises) :
<?php try {
$dom = new DomDocument();
$dom->loadHtmlFile('adressedemonfichier');
$racine = $dom->documentElement;
$divs = $racine->getElementsByTagName('table');
if (!is_null($divs)) {
foreach ($divs as $div) {
if($div->getAttribute('class') == 'ms-tables-s1')
echo (htmlspecialchars(utf8_decode($div->nodeValue)));
}
}
} catch(DOMException $e) {} ?>
Savez-vous comment je pourrais faire ?
Merci à tous pour votre attention !

Modifié par MHN (20 Apr 2009 - 21:02)