2016-07-22 12 views
1

У меня есть файл sitemap.xml. Проблема возникает, когда я пытаюсь обслуживать этот файл как sitemap.xml. Я получаю следующее сообщение об ошибке:Ошибка ASP.NET MVC 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> 

Я попытался переключая «application/xml» в «text/xml», но не решила эту проблему. Я не правильно использую XmlDocument, или я не совсем понимаю, что происходит с возвратом Content()?

Любая помощь приветствуется.

Спасибо

ответ

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"); 

Надеется, что это помогает кто-то позже.