如何仅删除此中的第一个<tr class="ismResult">
和<tr class="ismFixtureSummary">
,而不是第二个?{/ p>
我希望只删除前两个<tr>
标签和内容。有没有办法将这两个设置为变量,例如$Result
?我希望将html作为其中的一部分。
<table>
<tbody>
<tr class="ismResult">
<td>2-0</td>
</tr>
<tr class="ismFixtureSummary">
<td>Player1</td>
<td>Player2</td>
</tr>
<tr class="ismResult">
<td>1-1</td>
</tr>
<tr class="ismFixtureSummary">
<td>Player3</td>
<td>Player4</td>
</tr>
</tbody>
</table>
我做了什么:
include('simple_html_dom.php');
$url = 'http://www.test.com';
$html = file_get_html($url);
$FullTable = $html->find('table');
foreach($FullTable->find('tr[class=ismResult]') as $Heading)
{
echo $Heading;
foreach($FullTable->find('tr[class=ismFixtureSummary]') as $Summary)
{
echo $Summary;
}
}
这不起作用,因为它会将所有<tr class="ismFixtureSummary">
的内容发布到每个<tr class="ismResult">
中。我试图将它们剪成一对。
感谢您提供任何帮助。
答案 0 :(得分:0)
我会用XPATH解决这个问题
$xpath = new DOMXPath($html);
$ismResult = $xpath->query("//tr[@class='ismResult']/td");
$ismFixtureSummary= $xpath->query("//tr[@class='ismFixtureSummary']/td");
echo $ismResult->item(0)->nodeValue;
echo $ismFixtureSummary->item(0)->nodeValue;
您可以在此处阅读有关xpath的更多信息。 http://phpmaster.com/php-dom-using-xpath/
答案 1 :(得分:0)
只需将查找操作的结果设置为两个单独的数组,然后只需执行一个for循环并回显您要查找的结果。
include('simple_html_dom.php');
$url = 'http://www.test.com';
$html = file_get_html($url);
$FullTable = $html->find('table');
$headings = $FullTable->find('tr[class=ismResult]');
$summaries = $FullTable->find('tr[class=ismFixtureSummary]');
for ($i = 0; $i < count($headings); $i++;) {
echo $headings[$i] . $summaries[$i];
}