XML nachträglich was ändern?

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von headnut99.

    XML nachträglich was ändern?

    hey Leute !


    Kann man eine XML-file nachträglich verändern ohne das gesamte dokument neuzuschreiben ?!

    Ich möchte zb eine Profilliste erstellen und nachträglich die verschiedenen Profile eintragen, wenn diese erstellt werden...

    hoffe ihr könnt mir nen kleinen beispiel code posten!

    mfg headnut
    Mit XML.LinQ.XDokument sollte es recht einfach gehen.
    Mit:

    VB.NET-Quellcode

    1. Dim Doc as XDokument = XDokument.load("dateiname")
    die datei laden, dann mit

    VB.NET-Quellcode

    1. Doc.<Element1>.<Element2>.<...>.<Das zu ändernde Element>.value = "Neuer wert"
    den Wert ändern und dann mit

    VB.NET-Quellcode

    1. Doc.Save("Dateiname")
    das ganze wieder speichern.

    Nachteil daran ist du brauchst mindestens Framework 3.5
    jo ich möchte jetz zu der Profileliste eins dazuschreiben! Dazu kommt das dann ein bereich mit dem Profilenamen unter dem punk Window hinzukommt!

    XML-Quellcode

    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <Test>
    3. <GeneralSettings />
    4. <ProfileList />
    5. /hier ein eintrag
    6. <Window />
    7. /hier ein eintrag!
    8. </Test>
    Autsch. Wie wärs, wenn du dich in die Datenstruktur von XML-Dateien einlesen würdest?

    XML-Quellcode

    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <Test>
    3. <GeneralSettings />
    4. <ProfileList>
    5. /hier ein eintrag
    6. </ProfileList>
    7. <Window>
    8. /hier ein eintrag!
    9. </Window>
    10. </Test>


    lg SeriTools
    | Keine Fragen per PN oder Skype.
    komisch! Das XML- File hab ich net geschreiben sondern mit mit Xml.XmlDocument erstellt!


    VB.NET-Quellcode

    1. Dim xml As Xml.XmlDocument = New Xml.XmlDocument
    2. xml.LoadXml("<?xml version=""1.0"" " & _
    3. "encoding=""ISO-8859-1""?><Test/>")
    4. Dim xmlKD() As Xml.XmlElement
    5. ReDim xmlKD(3)
    6. xmlKD(0) = xml.CreateElement("GeneralSettings")
    7. xmlKD(1) = xml.CreateElement("ProfileList")
    8. xmlKD(2) = xml.CreateElement("Window")
    9. For i As Integer = 0 To xmlKD.GetUpperBound(0) - 1
    10. xml.DocumentElement.AppendChild(xmlKD(i))
    11. Next
    12. xml.Save(".\Config.xml")


    meines wissens nach geht das solange es eine einzeiliges element ist auch so!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „headnut99“ ()

    Hey ich komm net weiter ...

    Immernoch das XML problem

    Ich hab eine Datei namens ".\config.xml".

    In der datei steht

    XML-Quellcode

    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <Test>
    3. </Test>


    erstellt mit folgendem Code:

    VB.NET-Quellcode

    1. Dim xml As Xml.XmlDocument = New Xml.XmlDocument
    2. xml.LoadXml("<?xml version=""1.0"" " & _
    3. "encoding=""ISO-8859-1""?><Test/>")
    4. Dim xmlKD() As Xml.XmlNode
    5. ReDim xmlKD(3)
    6. xmlKD(0) = xml.CreateNode(XmlNodeType.Text, "GeneralSettings", Nothing)
    7. xmlKD(1) = xml.CreateNode(XmlNodeType.Text, "ProfileList", Nothing)
    8. xmlKD(2) = xml.CreateNode(XmlNodeType.Text, "Window", Nothing)
    9. For i As Integer = 0 To xmlKD.GetUpperBound(0) - 1
    10. xml.DocumentElement.AppendChild(xmlKD(i))
    11. Next
    12. xml.Save(".\Config.xml")


    ja da stimm was nicht!

    aber warum nicht?!

    denn wenn ich die "nodes" als elemnt hinzufüge geht das -> xml.createelement(args)

    Hab mich im XML bereich mal eingelesen, deshalb weiß ich das nur ich ein TextNode brauche um Attribute als element zu nutzen ...
    aber warum erstellt er diese nicht ...



    mfg headnut

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „headnut99“ ()

    Warum möchtest du es dir so schwer machen?

    Per XDocument geht das alles viel einfacher:
    Hier habe ich mal ein Einsteiger-Tutorial dazu geschrieben: [VB 2008] [Anfänger] XML-Verarbeitung mit XDocument
    Weitere Informationen findest du über Google.

    lg SeriTools
    | Keine Fragen per PN oder Skype.
    Genau das hab ich gesucht doch leider net gefunden -.-

    THX

    So modifizieren klappt!

    kann man mit linq auch knoten und attribute hinzufügen?

    mfg

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „headnut99“ ()

    ja das hab ich auch schon gefunden^^ Aber bin net schlau drausgeworden ...

    Ich schau mir das nochmal an, ein wenig hilfe wär jedoch nicht schelcht!

    /edit
    Habs hinbekommen

    Thx an alle beteiligten!


    mfg

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „headnut99“ ()