使用php在表中显示XML内容

时间:2013-06-05 02:50:16

标签: php html xml

我正在尝试将此XML的内容放在http://data.fcc.gov/api/license-view/basicSearch/getLicenses?searchValue=W1AW(我使用W1AW呼号作为示例)显示在表中(不是每个条目,只有“licName”,“callsign”) ,“serviceDesc”,“statusDesc”和“expiredDate”。)

在我的网站上,我希望能够根据url parremeter选择要搜索的呼号?callsign = choicehere(例如:mywebsite.com/callsignresults.php?callsign=w1aw)

我目前有以下代码。我只让参数工作。

<?php
$file = file_get_contents('http://data.fcc.gov/api/license-view/basicSearch/getLicenses?searchValue=' . ($_GET["callsign"]));
echo $file;
?>

那么我该如何将XML数据转换为用户友好的可读表。

表示例构思:

| NAME     | CALL SIGN | TYPE    | STATUS  | EXPIRATION DATE |
--------------------------------------------------------------
| John Doe | XXXX      | Amature | Active  |          1/1/13 |
| Jane Doe | X1X1X     | Amature | Expired |          1/1/13 |

API Documentation

2 个答案:

答案 0 :(得分:7)

以Neta Meta的答案为基础:

我在实际迭代构建的XML对象时遇到了一些麻烦,直到我意识到返回的XML与其大小写不一致。这是一些将该文件解析为表的工作代码:

<?php
$xml = new SimpleXMLElement('http://data.fcc.gov/api/license-view/basicSearch/getLicenses?searchValue='.$_GET["callsign"], 0, TRUE);
?>
<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Call Sign</th>
      <th>Type</th>
      <th>Status</th>
      <th>Expiration Date</th>
    </tr>
  </thead>
  <tbody>

<?php foreach ($xml->Licenses->License as $licenseElement) :?>
    <tr>
      <td><?php echo $licenseElement->licName; ?></td>
      <td><?php echo $licenseElement->callsign; ?></td>
      <td><?php echo $licenseElement->serviceDesc; ?></td>
      <td><?php echo $licenseElement->statusDesc; ?></td>
      <td><?php echo $licenseElement->expiredDate; ?></td>
    </tr>
<?php endforeach; ?>
  </tbody>
</table>

答案 1 :(得分:2)

基本上你可以使用 SimpleXML

$file = file_get_contents('http://data.fcc.gov/api/license-view/basicSearch/getLicenses?searchValue=Verizon+Wireless');
$movies = new SimpleXMLElement($file);

echo '<pre>';
print_r($movies);
echo '<pre>';

并遍历对象,显示页面。