<?php
$html = <<<EOF
<table>
<tr>
<td>something</td>
<td>...</td>
<td>...</td>
</tr>
<tr>
<td></td>
<td>...</td>
<td>...</td>
</tr>
<tr>
<td></td>
<td>...</td>
<td>...</td>
</tr>
<tr>
<td>anything</td>
<td>...</td>
<td>...</td>
</tr>
<tr>
<td></td>
<td>also find</td>
<td>...</td>
</tr>
<tr>
<td></td>
<td>this too</td>
<td>...</td>
</tr>
<tr>
<td>other</td>
<td>...</td>
<td>...</td>
</tr>
<tr>
<td></td>
<td>...</td>
<td>...</td>
</tr>
</table>
EOF;
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DomXpath($doc);
$res = $xpath->query('//td[contains(text(), "anything")]/../following-sibling::tr');
foreach($res as $tr){
var_dump($doc->saveXML($tr));
}
- Output for 8.0.30, 8.1.22 - 8.1.28, 8.2.9 - 8.2.18, 8.3.0 - 8.3.7
- string(62) "<tr>
<td/>
<td>also find</td>
<td>...</td>
</tr>"
string(61) "<tr>
<td/>
<td>this too</td>
<td>...</td>
</tr>"
string(65) "<tr>
<td>other</td>
<td>...</td>
<td>...</td>
</tr>"
string(56) "<tr>
<td/>
<td>...</td>
<td>...</td>
</tr>"
- Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.38, 7.0.0 - 7.0.33, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.29, 8.1.0 - 8.1.21, 8.2.0 - 8.2.8
- string(57) "<tr><td/>
<td>also find</td>
<td>...</td>
</tr>"
string(56) "<tr><td/>
<td>this too</td>
<td>...</td>
</tr>"
string(60) "<tr><td>other</td>
<td>...</td>
<td>...</td>
</tr>"
string(51) "<tr><td/>
<td>...</td>
<td>...</td>
</tr>"
- Output for 4.3.2 - 4.3.11, 4.4.0 - 4.4.1, 4.4.3 - 4.4.9
- Fatal error: Cannot instantiate non-existent class: domdocument in /in/hVS6V on line 50
Process exited with code 255. - Output for 4.4.2
- Fatal error: Cannot instantiate non-existent class: domdocument in /in/hVS6V on line 51
Process exited with code 255. - Output for 4.3.0 - 4.3.1
- Fatal error: Cannot instantiate non-existent class: domdocument in /in/hVS6V on line 50
preferences:
235.71 ms | 401 KiB | 425 Q