Announcement

Collapse
No announcement yet.

XML - kompletten Knoten löschen

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

  • XML - kompletten Knoten löschen

    Hallo zusammen,
    ich habe eine XML Datei, welche wie folgt aufgebaut ist:

    Code:
    <root>
      <Node>
        <IDG>79</IDG>
        <Bezeichnung>A 1754</Bezeichnung>
        <Liste>false</Liste>
        <DruckAnzahl>17</DruckAnzahl>
      </Glass>
      <Node>
        <IDG>63</IDG>
        <Bezeichnung>ADB</Bezeichnung>
        <Liste>true</Liste>
        <DruckAnzahl>17</DruckAnzahl>
      </Glass>
      <Node>
        <IDG>70</IDG>
        <Bezeichnung>AX 32</Bezeichnung>
        <Liste>true</Liste>
        <DruckAnzahl>6</DruckAnzahl>
      </Glass>
    </root>
    Ich möchte nun z.B. den gesamten Konten mit
    IDG=63
    löschen.

    Wie geh ich da ran?
    Hat jemand nen bischen Code für mich?

    Danke

  • #2
    Datei in ein XML-Document parsen
    Knoten suchen
    Knoten löschen
    Datei speichern
    Christian

    Comment


    • #3
      Hallo,
      Hat jemand nen bischen Code für mich?
      RemoveChild könnte weiterhelfen: http://support.microsoft.com/kb/317665
      MfG
      Cheat-Sheets for Developers / Programming Quotes

      Comment


      • #4
        Ich habs hinbekommen. Und zwar wie folgt:

        [highlight=vbnet]
        Public Function XMLRemoveNode(ByVal MyID As Long, ByRef errMsg As String) As Boolean
        Try
        Dim Xdoc As New System.Xml.XmlDocument
        Xdoc.Load("FileName")
        Dim NodeID As System.Xml.XmlElement

        NodeID = CType(Xdoc.SelectSingleNode("/" & Root & "/" & SubNode & "[IDG=" & MyID.ToString & "]"), Xml.XmlElement)

        If NodeID Is Nothing Then
        errMsg = "XMLRemoveNode:" & vbCrLf & "IDG ' " & MyID.ToString & " ' ist nicht vorhanden !"
        Xdoc = Nothing
        Return False
        End If
        NodeID.ParentNode.RemoveChild(NodeID)
        Xdoc.Save("FilenName")
        Xdoc = Nothing
        Catch ex As Exception
        errMsg = "XMLRemoveNode:" & vbCrLf & ex.Message
        Return False
        End Try

        Return True
        End Function
        [/highlight]

        Comment

        Working...
        X