はじめまして!!
現在、MySQLに格納されている緯度・経度のデータを取り出し、Google MapのXMLフォーマットにDOMを使用し出力したいと考えております。
そこで以下のコードを書いてみたのですが、上手くいきません。
もし何かご存知の方は、是非ご教授ください!!
ちなみにデータベースを介さず、単純に以下のコードにデータを打ち込むやり方だと上手くいったので、問題はデータベース絡みの部分だと考えています。
よろしくお願い申し上げます。
lang
1<?php 2 3// インスタンスの生成 4$dom = new DomDocument('1.0', 'UTF-8'); 5// prefs ノードを追加 6$root = $dom->appendChild($dom->createElement('root')); 7$MarkerData = $root->appendChild($dom->createElement('MarkerData')); 8 9 try 10 { 11// データベースへのアクセス・データの取り出し 12 $dsn='mysql:dbname=略;host= 略;charset=utf8'; 13 $user='略'; 14 $password='略'; 15 $dbh=new PDO($dsn,$user,$password); 16 $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 17 18 $sql='SELECT lat, lng, FROM maps '; 19 $stmt=$dbh->prepare($sql); 20 $stmt->execute(); 21 22 while($rec=$stmt->fetch(PDO::FETCH_ASSOC)) 23 { 24 25$marker = $MarkerData->appendChild($dom->createElement('marker')); 26$marker->setAttribute('lat', $rec['lat']); 27$marker->setAttribute('lng', $rec['lng']); 28$marker->appendChild($dom->createElement('icon', 'atlas')); 29 30 } 31 $dbh=null; 32 }catch(PDOException $e) 33 { 34 die("No!"); 35 } 36 37//XML を整形(改行・字下げ)して出力 38$dom->formatOutput = true; 39//保存(上書き) 40$dom->save('maps.xml'); 41 42?>
Google MapsでのXMLフォーマットは以下のようになります。
lang
1<?xml version="1.0" encoding="utf-8"?> 2<root> 3 <MarkerData> 4//① 5 <marker lat="35.507456" lng="139.61758499999996"> 6 <icon>atlas</icon> 7 </marker> 8//② ①~②を繰り返すことで複数表示 9 10 </MarkerData> 11</root>
回答1件
あなたの回答
tips
プレビュー