Привет всем, я пытаюсь отобразить карту Google с динамическими местоположениями, полученными из базы данных. Я следил за developers.google.com/maps/articles на phpsqlajax_v3. Я создал базу данных, и таблица выглядит так:
trnsportpublic table
transportpublicid int 11 AUTOINCREMENT
transportType varchar 60
costPerKm десятичный (7,2)
адрес varchar 800
teleNo int 10
webLink varchar 300
описание varchar 800
lat double (10,6)
lng double (10,6)
GenerateXml.php
<?php require("db_connection.php"); function parseToXML($htmlStr) { $xmlStr=str_replace('<','<',$htmlStr); $xmlStr=str_replace('>','>',$xmlStr); $xmlStr=str_replace('"','"',$xmlStr); $xmlStr=str_replace("'",''',$xmlStr); // line 11 $xmlStr=str_replace("&",'&',$xmlStr); return $xmlStr; } // Select all the rows in the markers table $query = "SELECT transportType,costPerKm,address,teleNo,webLink,lat,lng FROM transportpublic"; $result = mysql_query($query); if (!$result) { die('Invalid query: ' . mysql_error()); } header("Content-type: text/xml"); // Start XML file, echo parent node echo '<transportpublic>'; // Iterate through the rows, printing XML nodes for each while ($row = mysql_fetch_assoc($result)){ // ADD TO XML DOCUMENT NODE echo '<marker '; echo 'transportType="' . parseToXML($row['transportType']) . '" '; echo 'costPerKm="' . $row['costPerKm'] . '" '; echo 'address="' . parseToXML($row['address']) . '" '; echo 'teleNo="' . $row['teleNo'] . '" '; echo 'webLink="' . parseToXML($row['webLink']) . '" '; echo 'lat="' . $row['lat'] . '" '; echo 'lng="' . $row['lng'] . '" '; echo '/>'; } // End XML file echo '</transportpublic>'; ?>
Когда я запускаю GenerateXml.php в браузере, я набираю
XML Parsing Error: junk after document element Location: http://localhost:8080/testserver/generateXml.php Line Number 11, Column 8: </html> <transportpublic> <marker transportType="Bus" costPerKm="1.50" address="abc" teleNo="112554476" webLink="http://www.abc.html" lat="0.000000" lng="0.000000" /> <marker transportType="Train" costPerKm="12.00" address="abc" teleNo="118745963" webLink="http://www.abc.html" lat="0.000000" lng="0.000000" /> <marker transportType="hmmmm" costPerKm="40.00" address="abc" teleNo="112541254" webLink="http://www.abc.html" lat="-33.005985" lng="-58.501824" /> <marker transportType="test" costPerKm="2.00" address="abc" teleNo="112541258" webLink="http://www.abc.html" lat="39.785999" lng="-75.041976" /> <marker transportType="test2" costPerKm="2.00" address="abc" teleNo="112541254" webLink="http://www.abc.html" lat="6.901698" lng="79.853854" /> </transportpublic> -------^
Я только узнал, что после корневого элемента я не должен разбирать какие-либо данные, это будет принято как мусор, но в моем GenerateXml.php я ничего не делаю после этой строки
echo '</transportpublic>';
Помоги мне, пожалуйста.
Корневым узлом является <transportpublic>
но сообщение об ошибке показывает фиктивный </html>
непосредственно перед ним. Парсер XML, вероятно, считает, что <html>
является корневым узлом, поэтому остальная часть XML является нежелательной после элемента документа, упомянутого в ошибке.