我正在将RSS提要中的XML文件集成到我的WordPress页面中。该文件如下所示:
<jobs>
<job>
<jobId>1</jobId>
<jobTitle>Title #1</jobTitle>
<jobType>Permanent</jobType>
<jobPlace>Place #1</jobPlace>
</job>
<job>
<jobId>2</jobId>
<jobTitle>Title #2</jobTitle>
<jobType>Part Time</jobType>
<jobPlace>Place #2</jobPlace>
</job>
<job>
<jobId>3</jobId>
<jobTitle>Title #3</jobTitle>
<jobType>Part Time</jobType>
<jobPlace>Place #1</jobPlace>
</job>
</jobs>
所以这应该很简单,对吧?我使用以下方法检索和显示信息:
$xml = simplexml_load_file($url);
$items = json_decode(json_encode($xml), true);
$items = $items['job'];
$types = array();
$locations = array();
foreach($items as $value) {
if(!isset($new_items[$value['jobPlace']])) {
$location[$value['jobPlace']] = $value['jobPlace'];
}
if(!isset($type[$value['jobType']])) {
$type[$value['jobType']] = $value['jobType'];
}
}
$locations = array_values($location);
$types = array_values($type);
foreach($locations as $loc) {
echo '<div class="jobs-'. $loc->jobPlace .'">';
echo '<h1>Jobs in '. $loc->jobPlace .'</h1>';
foreach($types as $typ) {
$location = $xml->xpath('/jobs/job[jobPlace="'. $loc->jobPlace.'"][jobType="'. $typ .'"]');
if($location) {
echo '<h3>'. $typ .'</h1>';
}
foreach($location as $item) {
echo '<div class="job-offer">';
echo $item->jobTitle;
echo '</div>';
}
}
echo '</div>';
echo '</br>';
}
结果类似于:
LOCATION #1:
Permanent Position
Actual job post(1)
...
Part Time Position:
Actual job post(3)
...
LOCATION #2:
Permanent Position
Actual job post(2)
...
我需要按位置将帖子分开,但是在位置中需要按类型分组,我首先创建了两个数组来收集位置信息,我只需要过滤唯一值,然后使用' XPath”以“过滤” XML中的数据,每个位置的类型相同。我想保持动态变化,因此,如果添加了新的地点或新的工作类型,它仍然可以正常工作,并且目前可以正常运行,但是我结束了多次学习,所以我想知道是否有更好的方法来解决这个问题。 (我实际上并不需要代码,但是我想改进一下,所以只讨论想法就好了!)
提前感谢您的时间。
此致