私は Google Geocoding API を使用していますが、特に XML 出力形式に依存しています。以下のコードは配列$arrGeocodeSales
をループし、行ごとに と を取得して$lat
、$long
テーブルに表示します。
$xml
このコードは正常に動作していますが、返された結果からより多くのフィールドを抽出できるように拡張したいと考えています。たとえば、 $xml の結果から抽出したい追加フィールドのいくつかはformatted_address
とpostal_code
です。以下のコードを変更して、追加のフィールドを抽出するにはどうすればよいですか?
$xml の結果の例を次に示します。
変更する必要があるコードは次のとおりです。SimpleXMLElement
返された を操作する方法がわかりません。助けてくれてありがとう。
<table border="1" style="margin-bottom:0px;">
<tr>
<th>ID</th>
<th>Roll</th>
<th>Address</th>
<th>Lat</th>
<th>Long</th>
<th>MapSaleNumber</th>
</tr>
<?php foreach ($arrGeocodeSales as $key => $value):
$address = $value['Address']."+".$value['Municipality']."+Ontario+Canada";
$googleAddress = "https://maps.google.com/maps/geo?q=".urlencode($address)."&output=xml";
// Retrieve the URL contents
$googlePage = file_get_contents($googleAddress);
// Parse the returned XML file
$xml = new SimpleXMLElement($googlePage);
// Parse the coordinate string
list($lng, $lat, $alt) = explode(",", $xml->Response->Placemark->Point->coordinates);
?>
<tr>
<td ><?php echo str_pad($row++, 2, '0', STR_PAD_LEFT); ?></td>
<td ><?php echo $value['SingleRoll']; ?></td>
<td ><?php echo $address; ?> </td>
<td ><?php echo $lat ?></td>
<td ><?php echo $lng ?></td>
<td ><?php echo $value['MapSaleNumber']; ?></td>
</tr>
<?php endforeach; ?>