dongshang1768 2019-06-10 17:49
浏览 18
已采纳

SimpleXMLElement foreach仅在有多个结果时显示

I have a simple http request.

Works great, providing there is more than 1 result.

The result comes back as an xml file which I then put into a table for the end user to see.

How do I make the foreach work when there is only one result?

$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>

When there is more than one result sent back in response, it works fine.

If there is nothing then it will say There are no Jobs available

Which is expected.

However if there is only 1 result then nothing is showing, Its as though the foreach just does not work.

  • 写回答

1条回答 默认 最新

  • drblhw5731 2019-06-11 16:57
    关注

    You just look at the following code. I hope it's work for you.

     <?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 } ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?