-
-
Save kmgdevelopment/3427969 to your computer and use it in GitHub Desktop.
<?php | |
$jobs = simplexml_load_file('jobfeed.xml'); | |
function output_list($jobs = array()) | |
{ | |
$data = array(); | |
foreach($jobs->xpath('/jobs/job') as $job_details) | |
{ | |
$category = $job_details->department; | |
$title = $job_details->title; | |
$url = $job_details->url; | |
if(!isset($data[$category])) | |
{ | |
$data[$category] = array(); | |
} | |
$data[$category][] = '<li>Category: '.$category.'<br>Title: '.$title.'<br>URL: '.$url.'</li>'; | |
} | |
foreach($data as $category => $items) | |
{ | |
$data[$category] = '<li><ul>'.implode('', $items).'</ul></li>'; | |
} | |
return '<ul>'.implode('', $data).'</ul>'; | |
} | |
echo output_list($jobs); | |
?> |
Add right above line 14, var_dump($data);exit();
That will output the $data array and see why there is an error. My guess is the $category variable is NULL or not set correctly and is possible a bad index. You could also do a var_dump($category);exit(); above live 14 to see what the category value is. Ensure that it actually has some value and those errors should do away. You are really close. My logis is 100% correct, it's just conflicts with your data and my code.
var_dump($data);
gives me this: array(0) { }
var_dump($category);
gives me this: object(SimpleXMLElement)#47 (0) { }
Both would imply that there is no data being returned for the $category
variable, which confuses the hell out of me because if I do this:
<ul>
<?php
$jobs = simplexml_load_file('jobfeed.xml');
foreach ($jobs->xpath('/jobs/job') as $jobDetails) {
$category = $jobDetails->department;
$title = $jobDetails->title;
$url = $jobDetails->url;
echo '<li>Category: ',$category,'<br>Title: ',$title,'<br>URL: ',$url,'</li>';
}
?>
</ul>
The categories are output perfectly fine.
I only made 2 modifications to the code you wrote:
<category>
but<department>
, so I changed that on line 10.xpath
to theforeach
parameters on line 8 to account for extra data inside the real<jobs>
tag.But I don't see how either of those changes would cause errors.
I actually get several EE PHP errors:
line 14:
lines 16 & 19: