Auf XML basierende Dateien laden, bearbeiten und speichern

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Auf XML basierende Dateien laden, bearbeiten und speichern

    Hallo VB-Paradise,
    ich habe folgendes Problem: Ich soll ein Script mit Visual Basic schreiben, welches eine XML bzw. auf XML basierende Dateien laden, bearbeiten und wieder speichern kann.
    Wenn eine XML Datei geladen wurde, sollen bestimmte Elemente auf ein Attribut untersucht werden. Wenn dieses vorhanden ist, soll je nach Information in dem Attribut Text aus der XML Datei entfernt werden.

    Beispiel:


    <ph test="111222-E">
    <image href=testbild.jpg"/>
    </ph>

    Alle Elemente mit dem Attribut "test" sollen verändert werden. Der Inhalt von Test soll auf L bzw. auf E untersucht werden. Dies steht immer am Ende der Information.
    Bei L soll alles von <ph bis zu </ph> aus dem Dokument entfernt werden, bei E wäre es nur dieser Teil: " test="111222-L".

    Soviel dazu, ich habe schon einiges mit XML Reader und Write versucht, aber habe da noch einige Probleme und ich denke es gibt bessere Möglichkeiten.
    Wie würdet ihr vorgehen? Hat schonmal jemand etwas ähnliches gemacht? Wäre für Tipps und Hilfen sehr Dankbar. :)

    Viele Grüße
    QwertzDev
    Mit XDocument kann man erstaunliches anstellen mit Xml-Dateien.
    Aber noch besser ist, wenn man ein typisiertes Dataset verfügbar hat - das speichert sich ja auch als Xml.

    Aber wies scheint ist dein Xml-Datenformat leider vorgegeben, und passt vmtl. nicht für ein Dataset.

    Mehr kann man dazu nicht sagen, denn deine Xml-Dateien werden nach einem bestimmten Schema aufgebaut sein, und ohne dieses zu kennen, kann man nicht mehr sagen als: "Es ist möglich!"
    @QwertzDev Sehen alle Dateien so aus?
    Sind da noch andere Tags drin und wenn ja in welcher Reihenfolge?
    Wenn das Format "frei" ist, brauchst Du einen XML-Format-Leser, um Deine Information auslesen, XDocument und XmlDocument.
    Ist es starr, kannst Du die Information auslesen, ohne zu wissen, dass da ein XML-Format dahintersteckt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Es befinden sich auch noch andere Tags im Dokument, die Reihenfolge ist immer unterschiedlich. Ich würde euch gerne eine Beispieldatei geben, aber ich muss dass vorher noch abklären, wegen Datenschutzbestimmungen.

    Ich versuche jetzt mal das ganze mit XDocument zu managen. Um Strings auf die Buchstaben E bzw. L zu untersuchen, habe ich gedacht, ich könnte das mit RegularExpressions managen.

    Laden und Speichern scheint ja recht simpel zu sein:

    Dim XDoc1 As XDocument = XDocument.Load(cb_file.Text)
    XDoc1.Save(cb_file.Text)

    Jetzt muss ich schauen, wie ich mit der Bearbeitung weitermache. :)

    QwertzDev schrieb:

    Ich würde euch gerne eine Beispieldatei geben
    Nimm eine und ersetze "Bundeswehr" durch "Kindergarten" usw. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!