XML_Attribute hinzufen funktioniert nicht richtig

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von TomWi.

    XML_Attribute hinzufen funktioniert nicht richtig

    Hallo Leute,

    ich bräuchte hier bitte noch Eure Hilfe. Das hinzufügen eine Attributes funktioniert nur Teilweise.

    XML vorher

    XML-Quellcode

    1. <alternative_sets>
    2. <alternative_set type="MODEL" name="Lineup1" label="Geo">
    3. </alternative_set>
    4. <alternative_set type="MODEL" name="Lineup2" label="Spiel">
    5. </alternative_set>
    6. </alternative_sets>


    XML nachher

    XML-Quellcode

    1. <alternative_sets>
    2. <alternative_set type="MODEL" name="Lineup1" label="Geo">
    3. </alternative_set>
    4. <alternative_set type="MODEL" name="Lineup2" label="Spiel" open="1">
    5. </alternative_set>
    6. </alternative_sets>


    der Code sollte eigentlich bei jedem Knoten der

    XML-Quellcode

    1. <alternative_set>
    heißt, das Attribute "open" mit dem Value "1" hinzufügen. Leider wird es nur beim Letzen Knoten mit besagtem Namen hinzugefügt. Hat jemand ne Ahnung, warum?

    Hier der Code

    VB.NET-Quellcode

    1. xmlAttrib = XML_Doc.CreateAttribute("open")
    2. xmlAttrib.Value = "1"
    3. XML_Doc.Load(openfilename)
    4. 'Dim element As XElement = XElement.Load(openfilename)
    5. Dim listofstreams As Xml.XmlNodeList = XML_Doc.SelectNodes("//alternative_set")
    6. Dim i As Integer
    7. For Each node As XmlNode In listofstreams
    8. node.Attributes.Append(xmlAttrib)
    9. Next
    10. XML_Doc.Save(openfilename)


    Danke

    Tom
    XmlAttribute hat eine Eigenschaft OwnerElement. Wenn du es dem ersten Node hinzufügst, wird das automatisch gesetzt, wenn du dann dasselbe Objekt einem zweiten Node hinzufügst, merkt das Attribut, dass es nun einen neuen Owner bekommt und trägt sich somit aus der Attributliste des ersten Nodes wieder aus.

    Erstelle für jeden Node, dem du das Attribut hinzufügen willst, eine neue Instanz des Attributs, dann sollte das klappen.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.