如何排除特定div简单的html dom?

问题描述 投票:-1回答:1

我应该如何排除特定的div儿童被打印出来?

示例:从下面的代码中,父div被称为<div class="event-panel">,它有div<div class="details"><div class="games">的子<div class="wrap">s。

所以我想要的是内部的所有div都不应该被打印出来,比如这个<div class="empty-outcome">&nbsp;</div>以及所有其他将在包装div中,我已经使用了这个方法应该可以工作但是我不知道我哪里错了。

应删除父div,<div class="event-panel">,请参阅下面的代码。

HTML结构:

<div class="event-panel">
  <div class="details">
    <div class="event-date">22:00</div>
    <div class="event-name">Serie A 2017 v Winner</div>
  </div>
  <div class="games">
    <div class="wrap">
      <div class="empty-outcome">&nbsp;</div>
      <div class="empty-outcome">&nbsp;</div>
      <div class="empty-outcome">&nbsp;</div>
      <div class="empty-outcome">&nbsp;</div>
      <div class="empty-outcome">&nbsp;</div>
      <div class="empty-outcome">&nbsp;</div>
      <div class="empty-outcome">&nbsp;</div>
      <div class="empty-outcome">&nbsp;</div>
      <div class="empty-outcome">&nbsp;</div>
      <div class="empty-outcome">&nbsp;</div>
    </div>
    <div class="full-event-button" onclick="prestige('/event  /3123361')">+1</div>
  </div>
</div>

执行代码:

<?php
include ('advanced_html_dom.php');
$html = file_get_html('https://sport.premierbet.com/tz/sport/1/#');

//Counting number of empty-outcome
$emptv = count($gameone = $html->find('div[class="empty-outcome"]'));
echo "Number of empty attribute is " . $emptv . '<br>';

//Print any data that i want but exclude this <div class="empty-outcome">&nbsp;</div>
foreach ($html->find('empty-outcome') as $item)
{
    $item->outertext = '';
    $ret = $item->find('div[class="event-name"]');
    echo "Event Name " . $ret . "<br>";
}

$html->clear();

?>
php html xpath simple-html-dom
1个回答
0
投票

你使用的是错误的CSS,它应该是:

$html->find('.empty-outcome')

这里还有一个删除它们的快捷方式:

$html->find('.empty-outcome')->remove;
© www.soinside.com 2019 - 2024. All rights reserved.