hrwsiggi
Goto Top

VB.Net - XML Datei einlesen, bestimmten Inhalt suchen und Inhalt hinzufügen

Hallo Leute!

Ich möchte gerne etwas in VB (ich benutze momentan 2008 Express) realisieren:

Ich möchte eine vorhandene XML-Datei einlesen, in dieser einen bestimmten (sich wiederholenden) Knoten und dessen Inhalt suchen. Wenn dieser Inhalt mein gesuchter Inhalt ist, dann soll ein Knoten hinzugefügt und die Datei wieder abgespeichert werden.

Habe schon einige Lösungsansätze gefunden, kriegs aber dennoch nicht richtig hin. Weiß auch nicht was besser ist: per Linq, XMLDocument oder was auch immer.

Die vorhandene XMLDatei hat in etwa folgenden Aufbau:


<?xml version="1.0"?>
<Typ="Typ1">
<Knoten>
blablabla
</Knoten>
....
<Positionen>
<Position>123456</Position>
<Position>654321</Position>
...
</Positionen>
</Typ>

Ich will jetzt z.B. wissen ob in dieser Datei ein Positions-Knoten mit dem Inhalt "123456" drin ist. Wenn ja, dann soll ein weiterer Positions-Knoten mit dem Inhalt "irgendwas" hinzugefügt werden.

Bitte um Lösungsansätze. face-smile

Danke im Voraus.

Content-Key: 157493

Url: https://administrator.de/contentid/157493

Printed on: April 23, 2024 at 12:04 o'clock

Member: bastla
bastla Dec 23, 2010 at 10:25:22 (UTC)
Goto Top
Hallo HrwSiggi!

Als VBScripter würde ich einfach den Dateiinhalt am Stück einlesen ("ReadAll") und nach einem
Replace(Dateiinhalt, "<Position>123456</Position>", "<Position>123456</Position>" & vbCrLf & "<Position>irgendwas</Position>")
mit einem "Write" wieder in die Datei schreiben ...

... ausformuliert also etwa:
Datei = "D:\Die.xml"  
Set fso = CreateObject("Scripting.FileSystemObject")  
T = fso.OpenTextFile(Datei).ReadAll
fso.CreateTextFile(Datei).Write Replace(T, "<Position>123456</Position>", "<Position>123456</Position>" & vbCrLf & "<Position>irgendwas</Position>")  
Grüße
bastla
Member: HrwSiggi
HrwSiggi Dec 23, 2010 at 10:58:27 (UTC)
Goto Top
Danke bastla, aber ich würde gern wissen wie es mit den XMLObjekten funktioniert.
Member: bastla
bastla Dec 23, 2010 at 11:45:28 (UTC)
Goto Top
Hallo HrwSiggi!

Demnach habe ich
Weiß auch nicht was besser ist: per Linq, XMLDocument oder was auch immer.
falsch verstanden ...

Grüße
bastla