0

mysqlデータベースにファイルされた値に基づいてGoogleマップにマーカーを配置しようとしています。PHPを使用してxmlを動的にロードする場合、responseXML.DocumentElementプロパティが評価されないため、マーカーはマップに配置されません。これは、データベースから動的にロードする場合ではなく、静的ファイルからXMLをロードする場合に機能します。

動作しないページは次のとおりです。http
://www.thirstygolfer.com/utils/maptest2.html動作するページは次のとおりです。http ://www.thirstygolfer.com/utils/maptest1.html

これは、xmlを生成するPHPファイルです:www.thirstygolfer.com/utils/xmldump3.php

これがthirstygolfer.com/utils/xmldump3.phpからのPHPコードです(db接続情報を除く):

<?php

$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node); 

$result=mysql_query("SELECT * FROM Main WHERE State='MA' and FirstLetter='A'");

header("Content-type: text/xml");

while ($row = mysql_fetch_assoc($result)){    

$node = $dom->createElement("marker");   
$newnode = $parnode->appendChild($node);     
$newnode->setAttribute("id",$row['id']);  
$newnode->setAttribute("lat", $row['Lat']);    
$newnode->setAttribute("lng", $row['Lon']);    
} 

echo $dom->saveXML();

?>

助けてください!!

4

3 に答える 3

1

生成された XML には、出力の上部に空白行が含まれているため、無効な XML になります。これは、インクルードされた PHP ファイルに、最初のファイルの前<?phpまたは最後のファイルの後に空の行があることが原因である可能性があります。?>

header('Content-Type: text/xml')また、ブラウザがデータの種類を認識できるように設定する必要がある場合もあります。

于 2013-01-11T18:36:25.690 に答える
0

この問題は解決されました。ご協力ありがとうございました。私のコードには2つの問題がありました:

1.) コンテンツ タイプは「text/html」でした。PHP スクリプトに次の行を追加する必要がありました。

header("Content-type: text/xml");

2.) xml ファイルの先頭に空白行がありました。IE はそれを処理しましたが、Chrome と FF には問題がありました。ファイルの先頭にある余分な行を削除したところ、すべてのブラウザーで機能するようになりました。

于 2013-01-13T15:23:33.543 に答える
0

XML のヘッダーが正しくありません ( web-sniffer.netから)

HTTP Response Header
Name    Value   Delim
Status: HTTP/1.1 200 OK
Date:   Fri, 11 Jan 2013 18:38:04 GMT   
P3P:    policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"   
Content-Type:   text/html   
Age:    0   
Connection: close   
Server: YTS/1.19.11:

Content-Type は「text/xml」である必要があります

于 2013-01-11T18:42:09.557 に答える