我收到一个错误,我认为这是非常具体的。

该PHP存储在我的域中。 它使用mysql数据库访问服务器,并使用其表信息生成带有标记的XML,此标记随后将在Google Map中使用。

实际上,它之所以有效是因为它正在检索标记,但是这种错误不会消失,而且我也不知道是什么原因造成的。 我是所有php和android编程的新手。 如果有人可以通过简单的解释为我澄清这一点,我将非常感激。

错误是:

This page contains the following errors:

error on line 3 at column 1: Extra content at the end of the document
Below is a rendering of the page up to the first error.

然后呈现我的预期结果。 我想解决并理解为什么会这样。

那里你去我的PHP代码。 我从教程( https://developers.google.com/maps/articles/phpsqlajax_v3 )中获得了:

<?php
require("db_config.php");

function parseToXML($htmlStr) 
{ 
$xmlStr=str_replace('<','&lt;',$htmlStr); 
$xmlStr=str_replace('>','&gt;',$xmlStr); 
$xmlStr=str_replace('"','&quot;',$xmlStr); 
$xmlStr=str_replace("'",'&#39;',$xmlStr); 
$xmlStr=str_replace("&",'&amp;',$xmlStr); 
return $xmlStr; 
} 

// Opens a connection to a MySQL server

$connection=mysql_connect ($mysql_host, $mysql_user, $mysql_password);
if (!$connection) {  die('Not connected : ' . mysql_error());}

// Set the active MySQL database

$db_selected = mysql_select_db($mysql_database, $connection);
if (!$db_selected) {
    die ('Can\'t use db : ' . mysql_error());
}

// Select all the rows in the markers table
$query = "SELECT * FROM Estac WHERE 1";
$result = mysql_query($query);
if (!$result) {
        die('Invalid query: ' . mysql_error());
}

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

// Start XML file, echo parent node
echo '<markers>';

// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  echo '<marker>';
  echo 'Name="' . parseToXML($row['Name']) . '" ';
  echo 'Address="' . parseToXML($row['Address']) . '" ';
  echo 'Tel="' . parseToXML($row['Tel']) . '" ';
  echo 'Lat="' . $row['Lat'] . '" ';
  echo 'Lng="' . $row['Lng'] . '" ';
  echo 'Price="' . $row['Price'] . '" ';
  echo '</marker>';
}

// End XML file
echo '</markers>';

?>

非常感谢!

===============>>#1 票数:4

只需右键单击您的输出错误网页,然后查看源代码,您将在PHP文件中看到正确的错误消息和行号。 您将在几秒钟内解决该错误。

===============>>#2 票数:3

“文档末尾的其他内容”

我想解决并理解为什么会这样。

为什么会这样? 简而言之,这是无效的XML。 请参见以下示例:

<xml>
</xml>
This here is extra content at the end of the document

如您所见,通常没有人会创建这样的XML文件。 在您的情况下,发生这种情况的原因是,那些聪明的程序员通常会写出函数以输出XML,而这些函数已经存在。 他们只是忘了正确输出xml ,然后被搞砸了:

$xml = new SimpleXMLElement('<markers/>');

foreach ($databaseResult as $row) 
{
    $marker = $xml->addChild('marker');
    foreach ($row as $key => $value) 
    {
        $marker[$key] = $value;
    }
}

header("Content-type: text/xml");
$xml->asXML('php://output');

本示例使用SimpleXML 如果您的数据库结果很大,而您想流式传输数据,则可以看一下XMLWriter

$writer = new XMLWriter();
$writer->openUri('php://output');

$writer->startDocument();
$writer->startElement('markers');

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

foreach ($databaseResult as $row)
{
    $writer->writeRaw("\n  ");
    $writer->flush();
    $writer->startElement('marker');

    foreach ($row as $key => $value)
    {
        $writer->writeAttribute($key, $value);
    }

    $writer->endElement();
}

$writer->writeRaw("\n");
$writer->endElement();
$writer->flush();

看到它在行动。

===============>>#3 票数:0

我遇到了同样的问题,并在数据库中放了'',它起作用了。

  ask by Cauê Jannini translate from so

未解决问题?本站智能推荐: