"XML Parsing Error: junk after document element"
The root node is <transportpublic>
but the error message shows a bogus </html>
close tag right before it. The XML parser probably thinks that <html>
is the root node, thus the rest of the XML is the junk after document element mentioned by the error.
I2Believe
Updated on June 05, 2022Comments
-
I2Believe almost 2 years
Hey everyone I'm trying to display a Google map with dynamic locations retrieve from database I was following developers.google.com/maps/articles on phpsqlajax_v3.I created the database and the table looks like this
trnsportpublic table
transportpublicid int 11 AUTOINCREMENT
transportType varchar 60
costPerKm decimal(7,2)
address varchar 800
teleNo int 10
webLink varchar 300
description 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>'; ?>
When I run GenerateXml.php on browser is gives me fillowing
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> -------^
I only got to know that after the root element I shouldn't be parsing any data it'll be taken as junk but in my GenerateXml.php i don't do anything after this line
echo '</transportpublic>';
help me please.