2009-10-05 3 views
2

J'essaye d'utiliser DOM html simple pour extraire tout à l'intérieur d'un tag avec la classe "sitepoint". Voici mon code qui ne fonctionne pas:Coincé avec Simple Html Dom et l'extraction d'informations

<?php 
include_once('simple_html_dom.php'); 

$html = file_get_html('examplewebsite'); 
$ret = $html->find('.sitepoint'); 
echo $ret; 

?> 

Ci-dessous un exemple de l'une des balises de SitePoint (il y a une dizaine) avec les informations à l'intérieur que je veux.

<dl class="sitepoint"> 
<dd class="thumbnail"> 
<a href="blabla" ></a><a href="/toolbar/sidepanel.php?url=random.html" >Get This  Now</a> </dd><dt class="notext"><a href="/to/" >Title</a></dt><dd class="starts"> 
<table width="100%" cellpadding="0" cellspacing="0" border="0"> 
<tr><td class="textUncolor"> CUT OUT SOME IMAGES AND  ADDRESSES HERE 
          </td></tr> 
</table> 
</dd> 

Quelqu'un peut-il me aider à le faire fonctionner?

+0

+1 pour ne pas essayer d'utiliser une regex. ;) – TrueWill

Répondre

0

Vous devez accéder à l'attribut outertext.

$html->find('.sitepoint',0)->outertext; 

Vérifiez le docs pour plus d'informations. Regardez sous « attributs magiques »

EDIT

Lors de la sélection des classes, vous devez spécifier lequel dans le document que vous utilisez. J'ai changé l'exemple ci-dessus pour refléter cela. Ceci est testé et fonctionne. (Notez le 0 comme second paramètre à trouver)

+0

Bonjour, j'ai changé la ligne en $ html-> find ('.pointpoint') -> outertext; et cela n'a pas fonctionné. –

+0

le code HTML ferme-t-il l'étiquette

? –

+0

Ah je dois avoir laissé le tag, il est fermé dans le code HTML. Il existe plusieurs balises

dans le document. J'apprécierais que quelqu'un puisse me dire où je me trompe ici. –