Ich schreibe eine Seite mit simple_html_dom. Auf der Seite, auf der ich kratze, steht ein Tisch mit Reihen, in denen sich eine Reihe von Zellen befindet. Ich möchte in der dritten Zelle in jeder Reihe Zeug bekommen. Die fragliche Zelle hat keine Klasse.Warum funktioniert dieser simple_html_dom-Selektor nicht, wenn er vollständig verwendet wird, aber nicht, wenn er in kleinere Selektoren aufgeteilt wird?
<tr class="thisrow">
<td class="firstcell"><strong>1st</strong></td>
<td class="secondcell">nothing in here</td>
<td><strong>blah blah</strong></td>
<td>something else</td>
</tr>
Also, um loszulegen, ging ich direkt für die dritte Zelle:
foreach($html->find('tr.thisrow td:nth-child(3)') as $thirdcell) {
echo $thirdcell->innertext // this works, no problem!
}
Aber dann in der Zeile in einer anderen Zelle einige Daten erkannte ich, ich brauchte (td.firstcell). Diese Zelle hat eine Klasse, so dass ich dachte, am besten in einer Schleife durch die Reihen, dann Selektoren im Rahmen dieser Reihe:
foreach($html->find('tr.thisrow') as $row) {
$thirdcell = $row->find('td:nth-child(3)');
echo $thirdcell; // this is now empty
$firstcell = $row->find('td.firstcell');
echo $firstcell; // this works!
}
So wie Sie, mein n-ter Kindselektor plötzlich in dem Kontext der sehen können Zeilenschleife funktioniert nicht. Was vermisse ich?
könnten Sie das Ziel HTML für Test hinzufügen? – smoqadam
@smoqadam, sicher, danke, ich habe es hinzugefügt. – willdanceforfun