Announcement

Collapse
No announcement yet.

XML Bestimmter Inhalt löschen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML Bestimmter Inhalt löschen

    Code:
    <Sprachen>
      <Visual_Basic>
        <Open_File_Dialog>
          <Beschreibung>Dies ist der Open File Dialog</Beschreibung>
          <Code>Sub Finden()
            'Position und Länge der momentanen Markierung speichern
            Dim pos As Integer = rtbCode.SelectionStart
            Dim Len As Integer = rtbCode.SelectionLength
            'Regex erstellen und matches herausfinden
            Try
                For Each m As Match In Regex.Matches(rtbCode.Text, Regex.Escape(Synthax), (1))
                    'Gefundene Objekte Hellgrau markieren
                    rtbCode.SelectionStart = m.Index
                    rtbCode.SelectionLength = m.Length
                    'Speichern der Daten in einer Liste
                    rtbmRichTextBoxMatches.Add(New RichTextBoxMatch() With {.Rtf = rtbCode.SelectedRtf, .Index = m.Index, .Length = m.Length})
                    rtbCode.SelectionColor = Color.Blue
                Next
                'Markierungsposition und Länge wieder übernehmen
                rtbCode.SelectionStart = pos
                rtbCode.SelectionLength = Len
            Catch ex As Exception
            End Try
        End Sub</Code>
        </Open_File_Dialog>
      </Visual_Basic>
      </Sprachen>
    Ich möchte gerne das bei einem bestimmten Ereigniss in meiner XML der komplette Eintrag Open File Dialog gelöscht wird inklusive Beschreibung und Code.

    Ich lasse mir den Code mittels einer TreeView Anzeigen desen Node der Name Open File Dialog besitzt. Wenn ich nun in der TreeView diesen Node lösche möchte ich gerne das der dazugehörie Teil in meiner XML auch gelöscht wird.

    Wie könnte ich dies am besten Realisieren?

  • #2
    eventuell hast du ein Ereignis das ausgelöst wird wenn du im Treeview etwas löscht. Mit diesem Ereignis löst du dann einen Code aus der dir die XML Datei durchsucht und entsprechen modifiziert.
    Unsere Jugend ist unerträglich, unverantwortlich und entsetzlich anzusehen! - Aristoteles

    Comment


    • #3
      Hallo,

      in der gleichen Method wie das Löschen des Knotens:
      [highlight=vb.net]
      Dim nodeText As String = treeView1.SelectedNode.Text

      ' Knoten im TreeView löschen:
      treeView1.SelectedNode.Remove()

      ' Laden des XML:
      Dim xml As XElement = XElement.Load("<Meine Xml-Datei>")

      ' Auswählen des zu löschenden Knotens:
      Dim knoten As XElement = xml.Element(nodeText)

      ' Knoten löschen:
      knoten.Remove()

      ' XML speichern:
      xml.Save("<Meine Xml-Datei>")
      [/highlight]

      Es wäre besser im TreeView in der Tag-Eigenschaft die zusätzlichen Infos zu haben. Wird dann die Anwendung beendet bzw. auf Speichern gedrückt wird aus dem TreeView (das alle Infos hat) das XML erzeugt, anstatt dies bei jeder Änderung im TreeView durchzuführen.

      mfG Gü
      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

      Comment


      • #4
        Originally posted by gfoidl View Post
        Es wäre besser im TreeView in der Tag-Eigenschaft die zusätzlichen Infos zu haben. Wird dann die Anwendung beendet bzw. auf Speichern gedrückt wird aus dem TreeView (das alle Infos hat) das XML erzeugt, anstatt dies bei jeder Änderung im TreeView durchzuführen.

        mfG Gü
        Danke erstmal,

        Sowas hat ich mir auch schon überlegt, da es doch bissle umständlich ist zwei xml mit getrennten Inhalten zu haben, wo diese Informationen eigentlich zusammengehören. Aber wie gesagt das ist so mein erstes richtiges VB Programm das ich dynamisch programmiere. Musste mir ja schon viel erklären lassen und hab deshalb auch auf tuts und code snippets aus dem netz zurückgegriffen, welche ich erst jetzt richtig verstanden habe.

        Hatte erst einmal vor das Prog fertigzustellen und danach den Quellcode zu optimieren.

        Comment


        • #5
          Hatte erst einmal vor das Prog fertigzustellen und danach den Quellcode zu optimieren.
          Das ist leider oft ein Anfägerfehler - ist mir auch passiert.

          Besser ist es zuerst ein Konzept zu erstellen und dieses dann umsetzten. So dauert es zwar ein bischen bis mit dem Programmieren begonnen werden kann, aber das Ergebis ist besser und man muss sich weniger ärgern.

          Zu deinem Bsp.:
          Ich würde das so lösen in dem ich im TreeView die Daten halte. Text, usw. ist klar. Über die Tag-Eigenschaft kann dem Knoten auch eine Objekt übergeben werden für zusätzliche Infos.
          Kommt es zum Speichern dann erstelle eine eigene Objekthierarchie du dann ganz einfach per Xml-Serialisation gespeichert/gelesen werden kann.

          Bei Bedarf kann ich dir ein Demo erstellen.

          mfG Gü
          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

          Comment

          Working...
          X