Laden von XML in MVC-Controller
Ich versuche zu laden, bis ein XML-Dokument in MVC im "HomeController"
Möchte ich dieses Dokument zu laden, bis alles unter dem Verzeichnis /Home/, so haben meine Klasse:
public HomeController()
{ }
Und in diesem habe ich den code, den ich will, um eine Verbindung von XML mit:
//Now set up the config xml read
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(HttpContext.Server.MapPath("~/Content/settings.xml"));
XmlNodeList settings = xmldoc.SelectNodes("/settings");
XmlNodeList defaults = xmldoc.GetElementsByTagName("default");
foreach (XmlNode node in defaults)
{
string def_WebPageName = node["WebPageName "].InnerText;
}
Struktur des XML:
<settings>
<defaults>
<WebPageName>blah</WebPageName>
</defaults>
Ich kann nicht scheinen zu finden theXML Datei, halten immer ein "Objekt auf null gesetzt reference" Fehler
Was die Zeile bewirkt, dass die null ref exception? Wenn xmldoc.Laden nicht finden konnte, die Datei, die Sie erhalten würden, eine Art IO-exception, die nicht eine null. - ref.
vielleicht ist der Pfad nicht korrekt ist. xmldoc.Belastung(HttpContext.Server.MapPath("~/Content/settings.xml"));
Exception Details: System.NullReferenceException: der Objektverweis wurde nicht auf eine Instanz eines Objekts. Quellfehler: Zeile 29: //Jetzt in der config-xml Lesen, Zeile 30: XmlDocument xmldoc = new XmlDocument(); Line 31: xmldoc.Load(Server.MapPath("~/Content/settings.xml"));
mit dem debugger versuchen zu finden, was null ist. Wenn erforderlich, überarbeiten Sie den code, um eine variable zu verwenden, wie diese :
Für einige Grund, httpContext null ist, wenn ich überprüfen Sie es. Zeile 29 ist nur ein Kommentar. "//Jetzt in der config-xml Lesen"
vielleicht ist der Pfad nicht korrekt ist. xmldoc.Belastung(HttpContext.Server.MapPath("~/Content/settings.xml"));
Exception Details: System.NullReferenceException: der Objektverweis wurde nicht auf eine Instanz eines Objekts. Quellfehler: Zeile 29: //Jetzt in der config-xml Lesen, Zeile 30: XmlDocument xmldoc = new XmlDocument(); Line 31: xmldoc.Load(Server.MapPath("~/Content/settings.xml"));
mit dem debugger versuchen zu finden, was null ist. Wenn erforderlich, überarbeiten Sie den code, um eine variable zu verwenden, wie diese :
var filePath = HttpContext.Server.MapPath("~/Content/settings.xml"); xmldoc.Load(filePath);
um zu prüfen, ob die Datei tatsächlich gefunden, auch die, welche Zeile 29 ?Für einige Grund, httpContext null ist, wenn ich überprüfen Sie es. Zeile 29 ist nur ein Kommentar. "//Jetzt in der config-xml Lesen"
InformationsquelleAutor JustAnotherDeveloper | 2011-09-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn es eine Web-app erhalten Sie so etwas wie http://yoursite/Content/settings.xml. Prüfen Sie, ob dieser Pfad existiert, auf dem web-server. Wenn es eine WinForms app verwenden ExecutionPath oder Umgebungsvariablen, um den Pfad abrufen, die Sie benötigen.
Sollten Sie auch so etwas wie
if(File.Exists(yourFilePathHere))
So versuchen, einen stream aus dem webrequest anstelle der Zeichenfolge.
InformationsquelleAutor Scarlaxx
Statt
versuchen mit nur
InformationsquelleAutor Alessandro Colla