MySQLのデータを、GoogleMapのXMLフォーマットに出力したい!
はじめまして!!
現在、MySQLに格納されている緯度・経度のデータを取り出し、Google MapのXMLフォーマットにDOMを使用し出力したいと考えております。
そこで以下のコードを書いてみたのですが、上手くいきません。
もし何かご存知の方は、是非ご教授ください!!
ちなみにデータベースを介さず、単純に以下のコードにデータを打ち込むやり方だと上手くいったので、問題はデータベース絡みの部分だと考えています。
よろしくお願い申し上げます。
<?php
// インスタンスの生成
$dom = new DomDocument('1.0', 'UTF-8');
// prefs ノードを追加
$root = $dom->appendChild($dom->createElement('root'));
$MarkerData = $root->appendChild($dom->createElement('MarkerData'));
try
{
// データベースへのアクセス・データの取り出し
$dsn='mysql:dbname=略;host= 略;charset=utf8';
$user='略';
$password='略';
$dbh=new PDO($dsn,$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql='SELECT lat, lng, FROM maps ';
$stmt=$dbh->prepare($sql);
$stmt->execute();
while($rec=$stmt->fetch(PDO::FETCH_ASSOC))
{
$marker = $MarkerData->appendChild($dom->createElement('marker'));
$marker->setAttribute('lat', $rec['lat']);
$marker->setAttribute('lng', $rec['lng']);
$marker->appendChild($dom->createElement('icon', 'atlas'));
}
$dbh=null;
}catch(PDOException $e)
{
die("No!");
}
//XML を整形(改行・字下げ)して出力
$dom->formatOutput = true;
//保存(上書き)
$dom->save('maps.xml');
?>
Google MapsでのXMLフォーマットは以下のようになります。
<?xml version="1.0" encoding="utf-8"?>
<root>
<MarkerData>
//①
<marker lat="35.507456" lng="139.61758499999996">
<icon>atlas</icon>
</marker>
//② ①~②を繰り返すことで複数表示
</MarkerData>
</root>