2016-07-22 1 views
1

J'ai un fichier sitemap.xml valide. Le problème se pose lorsque j'essaie de servir ce fichier en tant que sitemap.xml. Je reçois l'erreur suivante:ASP.NET MVC Sitemap.xml erreur

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. 

Lorsque je visite /sitemap.xml du navigateur chaque balise d'élément reçoit ce ajouté.

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

Voici comment je retourne le fichier du contrôleur:

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

Voici un exemple du fichier que j'ai et essayer de revenir

<?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> 

J'ai essayé passer la "application/xml" à "text/xml" mais n'a pas résolu ce problème. Est-ce que je n'utilise pas XmlDocument correctement ou est-ce que je ne comprends pas complètement ce qui se passe avec return Content()?

Toute aide est appréciée.

Merci

Répondre

1

Qu'est-ce qui a été réparé ce fut une solution simple.

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

Changé à

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

Hope this helps quelqu'un plus tard.