I have a page with these HTML codes:
<ul class ='trainList'>
<li>
<div class="smallFont farelist no-discount ">
<div class="train-no">ABC 701</div>
<div class="train-time">06:10<br>07:15</div>
<div class="train-info">
<div class="box">
<div class="total-price">MYR 50.00</div>
<div class="farediscount">
<div class="actual-fare-price">Array</div>
<div class="train-discount"></div>
</div>
</div>
</li>
<li>
<div class="smallFont farelist no-discount ">
<div class="train-no">ABC 701</div>
<div class="train-time">06:10<br>07:15</div>
<div class="train-info">
<div class="box">
<div class="total-price">MYR 50.00</div>
<div class="farediscount">
<div class="actual-fare-price">Array</div>
<div class="train-discount"></div>
</div>
</div>
</li>
I want to clean and remove the train, there is no time for the train and the cost of trains according to the above code.
My code does not clear the information I want, but it gives me a space. I checked a lot of questions posted earlier, but I can't find anything like this.
my code is:
$train_doc = new DOMDocument();
libxml_use_internal_errors(TRUE);
if(!empty($html)){
$train_doc->loadHTML($html);
libxml_clear_errors();
$train_xpath = new DOMXPath($train_doc);
$train_list = array();
$train = $train_xpath->query('//div[@class="smallFont farelist no-discount"]');
var_dump($train);
if($train->length > 0){
foreach($train as $pat){
$name = $train_xpath->query('div[@class="train-no"]', $pat)->item(0)->nodeValue;
$train_types = array();
$types = $train_xpath->query('div[@class="train-time"]/a', $pat);
foreach($types as $type){
$train_types[] = $type->nodeValue;
$train_list[] = array('name' => $name, 'types' => $train_types);
}
}
}
echo "<pre>";
print_r($train_list);
echo "</pre>";
source
share