Sitemap中的命名空间不正确

时间:2016-10-10 17:32:06

标签: c# model-view-controller sitemap

我在谷歌搜索控制台上收到此错误。我尝试了很多东西,但没有任何效果。如果我错过了什么,任何建议。

描述:您的Sitemap或Sitemap索引文件未正确声明命名空间。

示例:您的Sitemap或Sitemap索引文件未声明预期的命名空间:http://www.sitemaps.org/schemas/sitemap/0.9 标签:urlset

这就是我在网站地图上看到的内容:

<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns:Xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

我的代码:

public XmlSitemapResult(IEnumerable<ISitemapItem> items)
        {
            _items = items;
        }

        public override void ExecuteResult(ControllerContext context)
        {
            string encoding = context.HttpContext.Response.ContentEncoding.WebName;
            XDocument sitemap = new XDocument(new XDeclaration("1.0", "utf-8", "yes"),
                 new XElement("urlset", new XAttribute(XNamespace.Xmlns.GetName("Xmlns"), "http://www.sitemaps.org/schemas/sitemap/0.9"),
                      from item in _items
                      select CreateItemElement(item)
                      )
                 );

            context.HttpContext.Response.ContentType = "text/xml";
            context.HttpContext.Response.Flush();
            context.HttpContext.Response.Write(sitemap.Declaration + sitemap.ToString());
        }

1 个答案:

答案 0 :(得分:1)

我想我知道问题是什么从urlset标记中删除Xmlns。示例XML站点地图:

<?xml version="1.0" encoding="UTF-8"?>

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

   <url>

      <loc>http://www.example.com/</loc>

      <lastmod>2005-01-01</lastmod>

      <changefreq>monthly</changefreq>

      <priority>0.8</priority>

   </url>

</urlset> 

字体:http://www.sitemaps.org/protocol.html