xmlParseEntityRef:加载xml时无名称警告

时间:2018-10-18 14:52:25

标签: php xml

Hello stackoverflow社区,

此代码显示我的站点地图的网址, 连接正常工作并显示网址列表(效果不佳) 我可以在标题中看到的错误代码

  

此页面包含以下错误:   第18行的第18210列出现错误:xmlParseEntityRef:无名称   下面是直到第一个错误的页面呈现。

<?php 
header('Content-type: application/xml; charset=utf-8') ?>
<?php 
echo '<?xml version="1.0" encoding="UTF-8"?>' ?>

<?php

define('DBHOST','localhost');
define('DBUSER','user');
define('DBNAME','database');
define('DBPWD','password');
$connect = new MySQLi(DBHOST,DBUSER,DBPWD,DBNAME)or die(mysqli_error());

echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
echo '<url>';

$query = $connect->query("select * from rss");
while($row=$query->fetch_array(MYSQL_ASSOC))
{

echo '<loc>'.$row['link'].'</loc>';

}
echo '</url>';
echo '</urlset>';
?>

上面的代码输出了这个(看起来正确吗?)

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>http://www.exemple.com/d/brown</loc>
<loc>http://www.exemple.com/d/blue</loc>
<loc>http://www.exemple.com/d/red/</loc> 
<loc>http://www.exemple.com/d/yellow</loc>
//more lines
</url></urlset>

我想知道我在此代码上做错了什么 非常感谢你

(法国皮埃尔)

1 个答案:

答案 0 :(得分:0)

我解决了该问题,该错误来自rss表中的一个字段包含错误字符...,但我添加了缺少的xml参数

  

lastmod,changefreq,优先级

<?php 
define('DBHOST','localhost');
define('DBUSER','user');
define('DBNAME','rss');
define('DBPWD','password');
$connect = new MySQLi(DBHOST,DBUSER,DBPWD,DBNAME)or die(mysqli_error());

header("Content-Type: text/xml;charset=iso-8859-1");  
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">";

    {

$query = $connect->query("select * from rss");
while($row=$query->fetch_array(MYSQL_ASSOC)) { 
  $url = $row["link"];
  $time = $row["when"];
  $lastmod = $time; 
  $datetime = new DateTime($lastmod);
  $timeresult = $datetime->format('Y-m-d\TH:i:sP');

  echo "<url>
      <loc>$url</loc>
      <lastmod>$timeresult</lastmod>
      <changefreq>hourly</changefreq>
      <priority>0.8</priority>
  </url>
";}}
?>
</urlset>

像这样输出不再发出错误 它确实通过了Google验证

谢谢