ASP.NET MVC Sitemap.xml错误

时间:2016-07-22 22:21:09

标签: asp.net xml asp.net-mvc-4 sitemap nopcommerce

我有一个有效的sitemap.xml文件。当我尝试将此文件作为sitemap.xml提供时,会出现问题。我收到以下错误:

This page contains the following errors:

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

当我从浏览器检查/sitemap.xml时,每个元素标记都会将其添加到其中。

<url xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    the rest
</url>

以下是我从控制器返回文件的方法:

XmlDocument xml = new XmlDocument();
xml.Load(@"C:\sitemap.xml");
return Content(xml.DocumentElement.InnerXml, "application/xml");

以下是我拥有并尝试返回的文件的示例

<?xml version="1.0" encoding="utf-8"?>
<urlset 
    xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 
    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">
  <url>
    <loc>LINK</loc>
  </url>
  THE REST OF URLS
</urlset>

我试过切换&#34; application / xml&#34; to&#34; text / xml&#34;但没有解决这个问题。我没有正确使用XmlDocument,还是我不完全理解返回Content()会发生什么?

感谢任何帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

最终解决了什么是一个简单的修复。

XmlDocument xml = new XmlDocument();
xml.Load(@"C:\sitemap.xml");
return Content(xml.DocumentElement.InnerXml, "application/xml");

已更改为

XmlDocument xml = new XmlDocument();
xml.Load(@"C:\sitemap.xml");
return Content(xml.DocumentElement.OuterXml, "application/xml");

希望以后可以帮助别人。