2016-07-22 7 views
1

Ich habe eine gültige sitemap.xml-Datei. Das Problem tritt auf, wenn ich versuche, diese Datei als sitemap.xml bereitzustellen. Ich erhalte die folgende Fehlermeldung:ASP.NET MVC Sitemap.xml Fehler

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. 

Wenn ich /sitemap.xml inspizieren von Browser jedes Element-Tag wird dies hinzugefügt.

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

Hier ist, wie ich die Datei von der Steuerung zurück:

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

Hier ein Beispiel für die Datei ist, ich habe und versucht

zurückzukehren
<?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> 

I Schalt haben versucht, die "application/xml" zu "text/xml", löste dieses Problem jedoch nicht. Benütze ich XmlDocument nicht korrekt oder verstehe ich nicht vollständig, was mit return Content() passiert?

Jede Hilfe wird geschätzt.

Vielen Dank

Antwort

1

Was endete behoben war dies eine einfache Lösung.

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

geändert zu

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

Hope this jemand später hilft.