SimpleXMLElement foreach показывает только при наличии более одного результата - PullRequest
0 голосов
/ 10 июня 2019

У меня простой http-запрос.

Отлично работает, если результат более 1.

Результат возвращается в виде XML-файла, который я затем помещаю в таблицу для просмотра конечным пользователем.

Как мне заставить foreach работать, когда результат только один?

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "There are no Jobs available ";
} else {
?>

<table id ="table-job" class="container sortable">
  <thead>
    <tr>
<th class="job" > Job</th>
 <th class="position" > position</th>
 <th class="name" > Name</th>
</tr>
</thead>


<?php
$xml = new SimpleXMLElement($response);

foreach($xml->record as $item)
?>
<tr>
<td class="jon"><?php echo (string)$item->job; ?></td>
<td class="position"><?php echo (string)$item->position; ?></td>
<td class="name"><?php echo (string)$item->name; ?></td>
</tr>

Когда в ответ отправляется более одного результата, он работает нормально.

Если ничего нет, то он скажет: «Нет доступных рабочих мест»

Что ожидается.

Однако, если есть только 1 результат, то ничего не отображается, как будто foreach просто не работает.

1 Ответ

0 голосов
/ 11 июня 2019

Вы просто посмотрите на следующий код. Я надеюсь, что это работа для вас.

 <?php
 $xml = simplexml_load_file("sample.xml", NULL, LIBXML_NOCDATA);

 foreach ($xml->record as $item) {?>
 <tr>
    <td class="jon"><?php echo (string)$item->job; ?></td>
    <td class="position"><?php echo (string)$item->position; ?></td>
    <td class="name"><?php echo (string)$item->name; ?></td>
 </tr>
 <?php } ?>
...