1

http://data.fcc.gov/api/license-view/basicSearch/getLicenses?searchValue=W1AWにあるこの XML の内容を表示しようとしています(例として W1AW コールサインを使用しています)。テーブル (すべてのエントリではなく、"licName"、"callsign"、"serviceDesc"、"statusDesc"、および "expiredDate" のみ。)

私のウェブサイトでは、URL パラメータ ?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 ドキュメント

4

2 に答える 2

10

ネタメタの答えに基づいて構築:

返された 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>
于 2013-06-05T04:02:29.673 に答える
4

基本的に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>';

そして、取得したオブジェクトを繰り返し処理してページを表示します。

于 2013-06-05T03:37:03.273 に答える