2016-08-08 25 views
0

Ich habe ein XML-Dokument in meinem Projekt, das wie dieseProbleme beim Laden XML-Dokument aus Projekt

<?xml version="1.0" encoding="utf-8" ?> 
<event> 
    <name>Test Event</name> 
    <date>06/19/1967</date> 
    <description>Birthday</description> 
    <blogURL></blogURL> 
</event> 

ich eine Webseite erstellen möchte, sieht die diese Werte von Benutzereingaben und ersetzt akzeptiert.

Hier ist meine aspx Seite

<asp:Panel ID="NewEvent" CssClass="eventSection" runat="server" Visible="false"> 
    <asp:Label runat="server" ID="MessageBox" Text="" Visible="false"></asp:Label> 
    <telerik:RadTextBox ID="NewEventName" placeholder="Event Name" runat="server"></telerik:RadTextBox> 
    <br /> 
    <telerik:RadDatePicker ID="NewDate" runat="server"></telerik:RadDatePicker> 
    <br /> 
    <telerik:RadTextBox ID="NewDescription" runat="server" placeholder="Description of event" TextMode="MultiLine"></telerik:RadTextBox> 
    <br /> 
    <telerik:RadTextBox ID="NewURL" runat="server" placeholder="Leave blank if none"></telerik:RadTextBox> 
    <br /> 
    <telerik:RadButton ID="EditXML" runat="server" Text="Submit Event" OnClick="EditXML_Click"></telerik:RadButton> 
</asp:Panel> 

hinter Mein Code diese Werte

string newEventName = NewEventName.Text; 
    string newEventDescription = NewDescription.Text; 
    string newEventDate = NewDate.SelectedDate.Value.Date.ToString(); 
    string newEventURL = NewURL.Text; 

Und schließlich Werte in XML-Dokument tatsächlich greifen

XDocument doc = XDocument.Load("/PressSection.xml"); 
    doc.Element("name").Value = newEventName; 
    doc.Element("date").Value = newEventDate; 
    doc.Element("description").Value = newEventDescription; 
    doc.Element("blogURL").Value = newEventURL; 
    doc.Save(Server.MapPath("~/PressSection.xml")); 
Einfügen

Die XML-Datei ist im selben Verzeichnis wie meine aspx-Datei

befindet

Image

Was ich

string path = Server.MapPath("PressSection.xml"); 
    XDocument doc = XDocument.Load(path); 

versucht haben, die diesen Fehler gibt

error

Was ich bin nicht sicher, warum. Wenn ich einen Haltepunkt einstelle und über meine Werte schwebe, sind diese gefüllt.

Ich habe auch versucht

XDocument doc = XDocument.Load(Server.MapPath("~/PressSection.xml")); 

, die wie oben mir den gleichen Fehler gibt.

Schließlich habe ich auch versucht,

XDocument doc = XDocument.Load("\\PressSection.xml"); 

Was mir diesen Fehler

final image

gibt weiß ich nicht, was an dieser Stelle zu tun.

+1

NRE wahrscheinlich üblich Duplikat http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix- ist es ... Vielleicht möchten Sie mit der Lösung dieses Fehlers beginnen. –

+0

Wenn Sie eine Ausnahme, die an anderer Stelle aufgetreten ist, erneut ausgeben, ist die Ausnahme, die Sie erhalten, sehr klar: "NewEventName" muss "null" sein, wenn Sie versuchen, '.Text' aufzurufen. – starlight54

Antwort

0

Element liefert das erste untergeordnete Element des aktuellen Containers (Element/Dokument) nur. So wird jede Ihrer Fragen wie diese:

doc.Element("name").Value = newEventName; 

den Wert null zurück, und Ihr späterer Zugriff von Value wird in einer Null-Referenz Ausnahme führen. Sie sollten zuerst das event Element erhalten:

var event = doc.Element("event"); 
event.Element("name").Value = newEventName; 
+0

Vielen Dank für Ihre Hilfe. Ich verstehe jetzt. – onTheInternet

Verwandte Themen