ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
481
481
EMPFEHLEN
-
Hi
und schon wieder ein problem...
und zwar folgendes:
In meiner Anwendung lade ich aus einer XML einen Pfad fuer ein zweites XML, aus dem ich meine ganzen Konfigurationen lade.
Wenn dieses zweite xml nicht existiert, wird nachgefragt wo es zur zeit liegt, dann wird die erste XML abgeaendert und es faengt von vorne an...
Jetzt hab ich aber folgendes Problem:
da ich in meinem code die Load("..."); methode verwendet habe, aendert er er zwar den Pfad in der ersten XML, aber im Programm hat er immer noch den Alten Pfad, da anscheinend ein wiederholtes Laden mit Load("...") nicht zu einem neuen laden fuehr!!
Kann ich den Speicher irgendwie zerstoeren**** damit er mir die abgeaenderte XML laedt****
Hier wird die erste XML geladen und bei erfolg in einer Liste abgelegt
Hier erstell ich mein erstes XML neuCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
public bool GetfromRegXML(List<ControllerRegistry> ContrReg){ XmlDocument Registry = new XmlDocument(); try{ Registry.Load("Registry.xml"); // Choose the right node XmlNodeList RegNodes = Registry.SelectNodes("/Registry/Controller"); // Create first Listobject ControllerRegistry R = new ControllerRegistry(); bool Return = false; foreach(XmlNode RegNode in RegNodes){ string RoomName = RegNode.Attributes["RoomName"].InnerXml; string ControllerName = RegNode.Attributes["ControllerName"].InnerXml; string ConfigPath = RegNode.Attributes["ConfigPath"].InnerXml; string ControllerIP = RegNode.Attributes["ControllerIP"].InnerXml; if(RoomName ==" " || ControllerName ==" " || ConfigPath ==" " || RoomName =="" || ControllerName =="" || ConfigPath ==""){ Registry = null; Return = false; } else{ // Set all Registryinformation R.SetRoomName(RoomName); R.SetConfigPath(ConfigPath); R.SetControllerIP(ControllerIP); R.SetControllerName(ControllerName); ContrReg.Add(R); Return = true; } } return Return; } catch(FileNotFoundException){ Registry = null; return false; } }
mfgCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14
public void CreateNewRegXML(string ControllerName, string ControllerIP, string RoomName, string ConfigPath){ // Create a new XML-File XmlTextWriter CreateXML = new XmlTextWriter("Registry.xml",null); CreateXML.WriteStartDocument(); CreateXML.WriteStartElement("Registry"); CreateXML.WriteStartElement("Controller"); CreateXML.WriteAttributeString("ControllerName", "", ControllerName); CreateXML.WriteAttributeString("ControllerIP", "", ControllerIP); CreateXML.WriteAttributeString("RoomName", "", RoomName); CreateXML.WriteAttributeString("ConfigPath", "", ConfigPath); CreateXML.WriteEndElement(); CreateXML.WriteEndDocument(); CreateXML.Close(); }
Blue_Fox
-
Ich weiß es zwar nicht wirklich, aber das bezweifle ich doch sehr.da anscheinend ein wiederholtes Laden mit Load("...") nicht zu einem neuen laden fuehr!!
Ich würde eher vermuten das du irgendwo einen Fehler hast.
So richtig blicke ich da aber nicht durch. Vielleicht kannst du den Code nochmal aufs wesentliche reduzieren.
P.s.
String.TrimCode :1
if(RoomName ==" " || ControllerName ==" " || ConfigPath ==" " || RoomName =="" || ControllerName =="" || ConfigPath =="")
String.IsNullOrEmpty
String.IsNullOrWhiteSpaceIn order to understand recursion, one must first understand recursion.
-
Ja kann ich auch machen....
Code :1 2 3 4 5 6 7 8 9 10 11 12
public bool GetfromRegXML(List<ControllerRegistry> ContrReg){ XmlDocument Registry = new XmlDocument(); try{ Registry.Load("Registry.xml"); // hier wird es verarbeitet..... *fast unwichtig* XmlNodeList RegNodes = Registry.SelectNodes("/Registry/Controller"); // Create first Listobject ..... } catch(FileNotFoundException){ Registry = null; // ein Versuch von mir es ungueltig zu machen }
Das ist eigentlich alles um was es geht
das naechste mal schreib ich nur noch das wichtigste *sorry* , das waere aber hier nur die Zeile: Registry.Load("Registry.xml");
Also zur Erklaerung:
ich lade Das Registry XML aus immer dem Gleichen pfad, geh auf einen bestimmten Knoten im XML und schreibe dann alle Attribute in eine Liste....
Wie kann ich jetzt das laden rueckgaengig machen, dass beim naechsten durchlauf evtl ein abgeaendertes Registry geladen wird?
mfg
Blue Fox
-
Neue Entdeckung!!
wenn ich das Registry.xml vor dem 2. Durchlauf loesche, kann er es trotzdem laden!!?
Den stroert das gar nicht, dass es weg ist...
so loesche ich mein xml
Code :1 2
System.IO.File.Delete("Registry.xml");
und es ist wirklich vor dem 2. Durchlauf von der platte verschwunden!! *hab da extra 2 mal geschaut*
Ähnliche Themen
-
XmlDocument in TreeView anzeigen und ändern
Von Tikonteroga im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 03.08.11, 21:14 -
WPF TreeView an XMLDocument binden
Von accelle im Forum .NET WPF & SilverlightAntworten: 1Letzter Beitrag: 08.08.08, 12:11 -
XMLDocument darstellen
Von dila71 im Forum .NET Windows FormsAntworten: 1Letzter Beitrag: 07.12.05, 10:57 -
XMLDocument lesefehler
Von Christian Kusmanow im Forum .NET ArchivAntworten: 12Letzter Beitrag: 21.01.05, 16:33 -
XMLDocument
Von MD1978 im Forum .NET ArchivAntworten: 2Letzter Beitrag: 29.12.04, 17:24





Zitieren
Login





