Abend zusammen,
gibt es eine Möglichkeit, das ich eine XmlNode als Object aus einem XmlDocument auslesen, dann Clone und wieder einfüge?
Folgende funktioniert bei mir nicht 😦
// Document erstellen/laden
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("test.xml");
// Node per XPath lesen
XmlNode node = xmlDoc.SelectSingleNode(String.Format("/Configuration/HvsControl/ModulConfig/Modul[@Name='{0}'][@Instance='{1}']", modulName, instance));
// Node duplizieren
XmlNode newNode = node.Clone();
// Anpassen des Inhalt
newNode.Attributes["Name"].InnerText = modName;
newNode.Attributes["Instance"].InnerText = modInstance.ToString();
newNode.Attributes["Active"].InnerText = "False";
newNode["IP"].InnerText = "0.0.0.0";
newNode["Port"].InnerText = "1111";
newNode["Scanner_ID"].InnerText = "";
newNode["Scanner_Typ"].InnerText = "";
// Hier passiert der Fehler
xmlDoc.AppendChild(newNode);
Habt ihr evtl eine Ahnung wieso?
Grüße Simon
Man muss einen Node noch irgendwie - weiß ich grad nicht auswendig - dem XmlDocument zuordnen.
Hier passiert der Fehler
Nachdem du nicht verrätst welcher Fehler das ist, weiß ich nicht ob es überhaupt tatsächlich daran liegt.
Man muss einen Node noch irgendwie - weiß ich grad nicht auswendig - dem XmlDocument zuordnen.
Genau. Indem man nicht new verwendet, sondern XmlDocument.CreateNode
LaTino.
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)
Morgen,
Der Fehler lautet:
"Das Dokument verfügt bereits über einen 'DocumentElemte'-Knoten"
Als kleiner Hinweis, so sieht in etwa die XML aus:
<Configuration>
<SprachNr>0</SprachNr>
<HvsControlHost prio="1">193.169.100.145</HvsControlHost>
<Anmeldung_Delete>True</Anmeldung_Delete>
<HvsControl>
<ModulConfig>
<Modul Active="False" Instance="1" Name="CardScan">
<IP>10.24.5.199</IP>
<Port>2112</Port>
<Scanner_Typ>RFU630</Scanner_Typ>
<Scanner_ID>1</Scanner_ID>
</Modul>
</ModulConfig>
</HvsControl>
</Configuration>
Und der Bereich <Modul Active=......... soll kopiert/Dupliziert werden (aus Instance dann "2") und in die Xml Schreiben.
Der Fehler lautet:
"Das Dokument verfügt bereits über einen 'DocumentElemte'-Knoten"
Oje. Gut, dass chilic nachgefragt hat. Du versuchst, defektes XML zu bauen. Häng den neuen Knoten dort ein, wo er hingehört, und versuch ihn nicht als Root-Knoten einzuhängen.
Konkret ist der Fehler hier:
xmlDoc.AppendChild(newNode);
//stattdessen:
node.ParentNode.AppendChild(newNode);
LaTino
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)