Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

29.11. Aanpassen van Elementen of Attributen

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

29.11.1. Value Property

Voor het aanpassen van de waarde van een element of attribuut kan je gebruik maken van de Value property van het XElement of XAttribuut object.

Hiervoor is dus wel vereist dat je eerst de referentie bekomt van het object waarvan je de waarde wenst aan te passen :
Visual Basic 2012 Broncode - Codevoorbeeld 765
Option Explicit On
Option Strict On

Imports System.Xml.Linq

Namespace ManipulatingXML
    Class ValuePropertyExample
        Public Shared Sub Main()
            Dim employee As XElement = <employee>
                                           <name type="sirname">Smith</name>
                                       </employee>
            '
            Dim name As XElement = employee.<name>(0)
            name.Value = "John Smith"
            '
            Dim type As XAttribute = name.Attribute(XName.Get("type"))
            Type.Value = "fullname"
            '
            Console.WriteLine(employee.ToString())
            '
            Console.ReadLine()
        End Sub
    End Class
End Namespace
Console Application Output
<employee>
  <name type="fullname">John Smith</name>
</employee>

29.11.2. Waardes Aanpassen via Axis Properties

Ook aan de hand van de axis properties kunnen we deze waardes aanpassen, bijvoorbeeld met een attribute axis property als @type :
Visual Basic 2012 Broncode - Codevoorbeeld 766
Namespace ManipulatingXML
    Class ChangingValueAxisPropertiesExample
        Public Shared Sub Main()
            Dim employee As XElement = <employee>
                                           <name type="sirname">Smith</name>
                                       </employee>
            '
            employee.<name>.Value = "John Smith"
            '
            employee.<name>.@type = "fullname"
            '
            Console.WriteLine(employee.ToString())
            '
            Console.ReadLine()
        End Sub
    End Class
End Namespace
Console Application Output
<employee>
  <name type="fullname">John Smith</name>
</employee>

29.11.3. SetElementValue Method

Indien je reeds beschikt over de referentie van het parent element, kan je de naam van een child element ook meteen aanpassen via de SetElementValue method.  Hieraan geef je een XName door die naam representeert van de het element waarvan je de waarde wenst aan te passen (1).

Indien Nothing als tweede parameterwaarde wordt doorgegeven wordt het element in kwestie verwijderd (2).

Indien het element niet bestaat waarvan je de waarde wenst in te stellen, dan wordt dit element toegevoegd (3) :
Visual Basic 2012 Broncode - Codevoorbeeld 767
Namespace ManipulatingXML
    Class SetElementValueExample
        Public Shared Sub Main()
            Dim employee As XElement = <employee>
                                           <name>John</name>
                                       </employee>
            '
            employee.SetElementValue(XName.Get("name"), "John Smith")      ' (1)
            Console.WriteLine(employee.ToString())
            Console.WriteLine()
            '
            employee.SetElementValue(XName.Get("name"), Nothing)           ' (2)
            Console.WriteLine(employee.ToString())
            Console.WriteLine()
            '
            employee.SetElementValue(XName.Get("name"), "Jane")            ' (3)
            Console.WriteLine(employee.ToString())
            '
            Console.ReadLine()
        End Sub
    End Class
End Namespace
Console Application Output
<employee>
  <name>John Smith</name>
</employee>

<employee />

<employee>
  <name>Jane</name>
</employee>

29.11.4. SetAttributeValue Method

Naast het gebruik van de Value property op een XAttribute object, kan ook de SetAttributeValue method gebruikt worden om de waarde van een attribuut aan te passen (1).
Opnieuw is vereist dat je de referentie van het element, met het aan te passen attribuut, kent.

Indien Nothing wordt doorgegeven als tweede argumentwaarde wordt het attribuut verwijderd (2).

Indien er geen attribuut is met de naam die het eerste argument aangeeft, dan wordt dit attribuut toegevoegd (3) :
Visual Basic 2012 Broncode - Codevoorbeeld 768
Namespace ManipulatingXML
    Class SetAttributeValueExample
        Public Shared Sub Main()
            Dim name As XElement = <name type="sirname">John Smith</name>
            '
            name.SetAttributeValue(XName.Get("type"), "name")
            Console.WriteLine(name.ToString())
            '
            name.SetAttributeValue(XName.Get("type"), Nothing)
            Console.WriteLine(name.ToString())
            '
            name.SetAttributeValue(XName.Get("type"), "name")
            Console.WriteLine(name.ToString())
            '
            Console.ReadLine()
        End Sub
    End Class
End Namespace
Console Application Output
<name type="name">John Smith</name>
<name>John Smith</name>
<name type="name">John Smith</name>

29.11.5. Attributen Toevoegen of Verwijderen via Axis Properties

Ook via een attribute axis property kunnen we attributen toevoegen of verwijderen :
Visual Basic 2012 Broncode - Codevoorbeeld 769
Namespace ManipulatingXML
    Class AddingAttributeAxisPropertyExample
        Public Shared Sub Main()
            Dim name As XElement = <name type="sirname">John Smith</name>
            '
            name.@type = "name"
            Console.WriteLine(name.ToString())
            '
            name.@type = Nothing
            Console.WriteLine(name.ToString())
            '
            name.@type = "name"
            Console.WriteLine(name.ToString())
            '
            Console.ReadLine()
        End Sub
    End Class
End Namespace
Console Application Output
<name type="name">John Smith</name>
<name>John Smith</name>
<name type="name">John Smith</name>

29.11.6. Toevoegen en Verwijderen van Attributen

De klasse XElement beschikt over een Add en RemoveAttributes method om respectievelijk één XAttribute toe te voegen of alle XAttributes te verwijderen aan of uit een XElement.

De Remove method van de XAttribute klasse zelf, zorgt ervoor dat het XAttribute object waarop deze method wordt aangeroepen wordt verwijderd uit zijn parent element :
Visual Basic 2012 Broncode - Codevoorbeeld 770
Namespace ManipulatingXML
    Class AddingAndRemovingAttributesExample
        Public Shared Sub Main()
            Dim attribute As XAttribute = _
                                       New XAttribute(XName.Get("type"), "name")
            Dim element As XElement = <name <%= attribute %>>John Smith</name>
            Console.WriteLine(element.ToString())
            '
            attribute.Remove()          ' removes itself from its parent element
            Console.WriteLine(element.ToString())
            '
            element.Add(attribute)
            Console.WriteLine(element.ToString())
            '
            element.RemoveAttributes() ' removes all attributes from the element
            '
            Console.ReadLine()
        End Sub
    End Class
End Namespace
Console Application Output
<name type="name">John Smith</name>
<name>John Smith</name>
<name type="name">John Smith</name>

29.11.7. Toevoegen van Child Elementen

Aan XContainer objecten kan men via methods als Add, AddFirst, AddAfterSelf en AddBeforeSelf XNodes (zoals XElements) toevoegen :
Visual Basic 2012 Broncode - Codevoorbeeld 771
Namespace ManipulatingXML
    Class AddingElementsExample
        Public Shared Sub Main()
            Dim departements As XElement = <departements></departements>
            Console.WriteLine(departements.ToString())
            Console.WriteLine()
            '
            Dim sales As New XElement(XName.Get("departement"))
            sales.Value = "Sales"
            departements.Add(sales)
            Console.WriteLine(departements.ToString())
            Console.WriteLine()
            '
            sales.AddBeforeSelf(<departement>Distribution</departement>)
            Console.WriteLine(departements.ToString())
            Console.WriteLine()
            '
            sales.AddAfterSelf(<!-- other departements will follow -->)
            Console.WriteLine(departements.ToString())
            '
            Console.ReadLine()
        End Sub
    End Class
End Namespace
Console Application Output
<departements></departements>

<departements>
  <departement>Sales</departement>
</departements>

<departements>
  <departement>Distribution</departement>
  <departement>Sales</departement>
</departements>

<departements>
  <departement>Distribution</departement>
  <departement>Sales</departement>
  <!-- other departements will follow -->
</departements>
Zoals je in bovenstaand voorbeeld ziet, is het uiteraard ook mogelijk om bijvoorbeeld meteen XElement of XComment literals als argumentwaarde voor deze methods te gebruiken.

29.11.8. Verwijderen van Child Elementen

De klasse XElement beschikt over een Remove method om het element in kwestie uit zijn parent (een XContainer) te verwijderen.

Bij een call naar dee RemoveAll method, gedefinieerd in de XContainer klasse, zullen alle child nodes worden verwijderd :
Visual Basic 2012 Broncode - Codevoorbeeld 772
Namespace ManipulatingXML
    Class RemovingElementsExample
        Public Shared Sub Main()
            Dim sales As XElement = <departement>Sales</departement>
            Dim departements As XElement = _
                                <departements>
                                    <departement>Distribution</departement>
                                    <%= sales %>
                                    <!-- other departements will follow -->
                                </departements>
            Console.WriteLine(departements.ToString())
            Console.WriteLine()
            '
            sales.Remove()                      ' removes itself from its parent
            Console.WriteLine(departements.ToString())
            Console.WriteLine()
            '
            departements.RemoveAll()                   ' removes all child nodes
            Console.WriteLine(departements.ToString())
            '
            Console.ReadLine()
        End Sub
    End Class
End Namespace
Console Application Output
<departements>
  <departement>Distribution</departement>
  <departement>Sales</departement>
  <!-- other departements will follow -->
</departements>

<departements>
  <departement>Distribution</departement>
  <!-- other departements will follow -->
</departements>

<departements />

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.