C# XmlNode NullReference finde den Fehler nicht

-Rayz-

Lieutenant
Registriert
Okt. 2010
Beiträge
895
- Beitrag wiederhergestellt

Hallo,

ich möchte gerne durch einen Klick auf einen Button in einer Xml Datei Objekte reinschreiben können und da scheitere ich nun seit einigen Stunden dran.

Hier die Xml Datei:

Code:
<Config Name="Settings" Setting="DataPath">
  <COMPort1 Name="COMPort1" type="TDM_Container">
    <PortName Name="P1PortName" Value="COM5"></PortName>
    <BaudRate Name="P1BaudRate" Value="456"></BaudRate>
    <DataBits Name="P1DataBits" Value="8"></DataBits>
    <Parity Name="P1Parity" Value="N"></Parity>
    <StopBits Name="P1StopBits" Value="1"></StopBits>
  </COMPort1>
</Config>

Durch einen Klick soll COMPort1 ein weiteres Element BaudRate mit einem anderen Wert bekommen.
Dies versuche ich so:

Code:
 XmlDocument doc = new XmlDocument();
doc.Load(xmlFilePath);
         
XmlNode insertAfter = doc.DocumentElement.SelectSingleNode("COMPort1[@Name='COMPort1']/BaudRate[@Name='P1BaudRate']");

XmlNode newNode = doc.DocumentElement.SelectSingleNode("COMPort1[@Name='COMPort1']/BaudRate[@Name='P1BaudRate']").CloneNode(true);
Mit insertAfter gebe ich an, wo der Code eingefügt werden soll und mit newNode kopiere ich mir den entsprechenden Node und ändere dann die Werte des kopierten Node.

Code:
newNode.SelectSingleNode("COMPort1[@Name='COMPort1']/BaudRate[@Name='P1BaudRate']").Attributes["Value"].Value = "Testl";

Und ab hier kriege ich es nicht mehr zum laufen.
newNode.Value = "Test" funktioniert auch nicht. Wäre wohl zu einfach. Attributes[0] ergibt auch keinen Erfolg.

Die genaue Fehlermeldung lautet:

{"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."}


Über Hilfe würde ich mich freuen.

MfG
Ergänzung ()

Es geht wohl wirklich einfach...

newNode.Attributes["Value"].Value = "123";

Funktioniert!!

Weiter gehts :)
 
Zuletzt bearbeitet von einem Moderator: (Beitrag wiederhergestellt)
Zurück
Oben