XML Knoten löschen & hinzufügen in VB

Elteide

Cadet 2nd Year
Registriert
Juni 2008
Beiträge
19
Hallo liebe Community,

Ich habe ein problem mit volgender xml Datei.

<test>
<ActiveServiceSection>
<ActiveService>1</ActiveService>
<ActiveService>2</ActiveService>
<ActiveService>3</ActiveService>
<ActiveService>4</ActiveService>
</ActiveServiceSection>
<path>C:\AmosHubMonitor.config</path>
</test>

Wie kann ich diese Knoten vollständig löschen?

<ActiveService>1</ActiveService>
<ActiveService>2</ActiveService>
<ActiveService>3</ActiveService>
<ActiveService>4</ActiveService>

Das es dann so ausschaut.

<test>
<ActiveServiceSection>
</ActiveServiceSection>
<path>C:\AmosHubMonitor.config</path>
</test>

und wie kann ich dann einen neuen Eintrag wieder einfügen z.B. mit der 12?

<test>
<ActiveServiceSection>
<ActiveService>12</ActiveService>
</ActiveServiceSection>
<path>C:\AmosHubMonitor.config</path>
</test>

Ich hoffe ihr könnt mir helfen ich weiß langsam nicht mehr weiter...
vielen dank vür eure Hilfe!!!!

MFG Elteide
 
Arbeitest du auf .NET Basis ?
Wenn ja, hast du erfahrung mit der XMLWriter Klasse ?
 
oh sorry JA ich arbeite mit .net!!!
naja xml ist noch relativ neu für mich... wenn du es mir näher erklären könntest währe echt genial!

MFG Elteide
 
Diese XML-Datei hast du soweit selbst erstellt ? (also nicht von Hand sondern aus dem Quellcode heraus)

//edit:
ich würd dir ma den Link hier empfehlen da ist die komplette XMLWriter-Klasse dokumentiert versuch dich da mal reinzulesen :)
 
Zuletzt bearbeitet:
Okay, vielen dank das werde ich mal machen...
Ja, die hab ich per Hand erstellt und muss ich noch ein wenig abändern. Das ist die xml datei aus der ich die neuen Zahlen nur lese um mein programm zu conifgurieren.

Diese werden...sollen dann in eine andere xml Datei eingefügt werden...
Dort müsste ich dann nach <ActiveServiceSection> suchenund alles was der Knoten beinhaltet löschen. Um dann die neuen werte von der "Handxml-Datei" einzufügen.

MFG Elteide
 
Wenn das XML in einem XmlDocument-Objekt eingelesen ist, kannst du z.b. mit SelectNode() bzw. SelectNodes() zu Knoten navigieren. Löschen kannst du Knoten dann z.b. mit RemoveAll() bzw. RemoveChild().
 
Ich mach des... versuche es so!
Code:
  Dim xmldatei As New Xml.XmlDocument
        Dim xmllist As Xml.XmlNodeList
        xmldatei.Load(pathHubconf)
        xmllist = xmldatei.GetElementsByTagName("ActiveService")

und dann versuche ich die knoten zu löschen jedeoch ist (xmllist) blau untermalt.

'xmldatei.DocumentElement.RemoveChild(xmllist)

MFG Elteide
 
und wie müsste es dann aussehen? oder gibt es noch eine elegantere Methode? weil so lese ich die werte aus. Funktioniert auch! :)
 
Du machst es für jeden Knoten der XmlNodeList. So ungefähr würde ich das in C# machen:
Code:
foreach(XmlNode xn in xmllist) {
 //irgendwas mit xn machen...
}


Edit: Außerdem musst du RemoveChild() vom Elternknoten aus aufrufen. Das ist nicht DocumentElement.
 
Zuletzt bearbeitet:
pu... so gut bin nun auch wieder nicht :)
kannst du mir dabei helfen?!? währe echt net!

MFG Eleteide
 
Knoten gelöscht habe ich noch nicht, aber so stelle ich es mir in C# vor:
Code:
...
xmllist = xmldatei.SelectNodes("/test/ActiveServiceSection/ActiveService");
XmlNode parent = xmldatei.SelectNode("/test/ActiveServiceSection");

foreach(XmlNode xn in xmllist)
  parent.RemoveChild(xn);

Oder aber, wenn sonst keine weiteren Kindknoten vorkommen, kann man das auch abkürzen:
Code:
...
XmlNode parent = xmldatei.SelectNode("/test/ActiveServiceSection");
parent.RemoveAll();
 
Vielen dank!! ich versuche es mal in meinen code einzubinen.
 
Habs immer noch nicht hinbekommen. langsam verzweifl ich noch...

Habt ihr keinen code für VB... bzw. keine Idee mehr..
 
Zuletzt bearbeitet:
Habs jetzt!!!

Vielen dank für euere Vorschläge!!

MFG Elteide
 
Zurück
Oben