我正在尝试制作新闻站点地图和站点地图文件,但在谷歌网站管理员工具测试中它显示两个错误:
任何帮助提前致谢
header("Content-Type: application/xml; charset=utf-8");
echo '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL;
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">' . PHP_EOL;
$base_url = "https://www.example.com";
while($row = mysqli_fetch_array($sitegrab))
{
echo '<url>' . PHP_EOL;
echo '<loc>'.$base_url.'</loc>' . PHP_EOL;
echo '<news:name>'.$row['Website'].'</news:name>' . PHP_EOL;
echo '<news:link>'.$row['Link'].'</news:link>' . PHP_EOL;
echo '<changefreq>daily</changefreq>' . PHP_EOL;
echo '<priority>1</priority>' . PHP_EOL;
echo '</url>' . PHP_EOL;
}
echo '</urlset>' . PHP_EOL;
?>
答案 0 :(得分:0)
确保在将XML构建为文本时正确转义特殊字符。例如,&
很有可能成为URL的一部分,需要在XML字符串中以&
进行转义。
更好的解决方案是使用XML API(如XMLWriter)来创建XML。它会照顾逃跑。