Utiliser PHP Simple HTML DOM Parser pour trouver cellule de tableau et d'obtenir le contenu de la prochaine frère
Je suis en train d'utiliser PHP Simple HTML DOM Parser saisissez le code HTML d'un fichier externe. Le fichier contient une table et le but est de trouver une mesure de la cellule avec des données spécifiques contenu, puis le frère de la cellule de données. Ces données doivent être des lieux dans une variable PHP.
Basé sur la recherche et les infos trouvées dans les articles comme Comment analyser et de traitement de HTML/XML avec PHP?, Saisissant l'attribut href de l'élément, Grattage de Données: PHP Simple HTML DOM Parser et bien sûr PHP Simple HTML DOM Parser Manuel j'ai été en mesure de produire des résultats, mais j'ai peur, j'ai peut-être sur la mauvaise voie.
La ligne de la table ressemble à ceci:
<tr>
<td>fluff</td>
<td>irrelevant</td>
<td>etc</td>
<td><a href="one">Hello world</a></td>
<td>123.456</td>
<td>fluff</td>
<td>irrelevant</td>
<td>etc</td>
</tr>
Ce que je suis en train d'accomplir est de trouver la cellule du tableau qui contient "Bonjour le monde", puis le numéro à partir de l'intérieur de la prochaine td cellule. Le code suivant constate que la cellule de la table et fait écho à son contenu, mais mes tentatives pour l'utiliser comme un point de repère afin d'obtenir la prochaine cellule de données ont échoué...
$html = file_get_html("http://site.com/stuff.htm");
$e = $html->find('td',0)->innertext = 'Hello world';
echo $e;
Donc, finalement, dans l'exemple ci-dessus, la valeur de 123.456 besoin d'obtenir en quelque sorte dans une variable PHP.
Merci pour votre aide!
Je suis en mesure de trouver le texte interne de l'élément:
$e = $html->find('td',0)->innertext = 'Hello world';
mais je ne suis pas sûr de la façon de référence de l'élément lui-même une fois qu'il est trouvé.le
find(td,0)
renvoie cet élément, qui vous puis immédiatement extrait de l'innertext. si c'était find(td,0)->next_sibling()
, vous obtiendrez le td après celui que vous avez trouvé.OriginalL'auteur stotrami | 2013-04-02
Vous devez vous connecter pour publier un commentaire.
Il peut être fait à l'aide de la
DOMXPath
classe. Vous n'aurez pas besoin d'une bibliothèque externe pour cela.Voici un exemple:
Utilisation
$node->nextSibling->nodeValue;
. Notez que DOMXpath est beaucoup plus vite que le PHP Simple Html DOM solutionGénial. Qui fonctionne parfaitement, et sans avoir besoin d'inclure du PHP Simple DOM Parser. Merci heh2mgl!
Vous êtes les bienvenus 😉
OriginalL'auteur hek2mgl
à l'aide de simple html dom parser:
Vous pouvez décider que ce code par le biais de la première table:
$html->find('table',0)
l'index zéro signifie que la première balise de la table qu'il trouveOriginalL'auteur Adidi