You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网站Sitemap生成报错:未定义news命名空间前缀求助

解决Sitemap中news命名空间未定义的报错

嘿,这个问题我太熟悉了!你碰到的红色提示报错,核心原因是XML解析器不认识news这个命名空间前缀——你在代码里直接用了<news:name>标签,但没在根元素<urlset>里声明这个前缀对应的命名空间地址,所以解析器不知道该怎么处理它。

修复步骤

只需要在<urlset>标签里添加news命名空间的声明即可,通常新闻站点地图的命名空间是Google定义的http://www.google.com/schemas/sitemap-news/0.9。另外顺便提一句:标准的Google新闻站点地图里,新闻相关标签需要放在<news:news>父标签下,不过先解决你的报错问题,我们先修改命名空间部分。

修改后的完整代码

header("Content-Type: application/xml; charset=utf-8");
echo '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL;
// 这里添加了xmlns:news的命名空间声明,同时补充了对应的schema地址
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 
      xmlns:xlink="http://www.w3.org/1999/xlink" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:news="http://www.google.com/schemas/sitemap-news/0.9"
      xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd
                          http://www.google.com/schemas/sitemap-news/0.9 http://www.google.com/schemas/sitemap-news/0.9/sitemap-news.xsd">' . PHP_EOL;
$base_url = "www.example.com";
while($row = mysqli_fetch_array($sitegrab)) {
    echo '<url>' . PHP_EOL;
    // 如果你是要做标准Google新闻sitemap,建议把新闻标签包裹在<news:news>里,示例如下:
    // echo '<news:news>' . PHP_EOL;
    // echo '<news:name>'.$row['Website'].'</news:name>' . PHP_EOL;
    // echo '</news:news>' . PHP_EOL;
    echo '<news:name>'.$row['Website'].'</news:name>' . PHP_EOL;
    echo '<loc>'.$base_url.'</loc>' . PHP_EOL;
    echo '<changefreq>daily</changefreq>' . PHP_EOL;
    echo '<priority>0.5</priority>' . PHP_EOL;
    echo '</url>' . PHP_EOL;
}
echo '</urlset>' . PHP_EOL;

为什么这样能解决问题?

XML的命名空间机制就是用来区分不同标签体系的,当你使用带前缀的标签(比如news:name)时,必须提前告诉解析器这个前缀对应的官方schema地址,这样它才能正确识别和验证标签的合法性。添加xmlns:news="..."之后,解析器就知道news前缀对应的是Google新闻站点地图的规范,自然就不会报错了。

内容的提问来源于stack exchange,提问作者rayvic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:32:51