|
Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
28.11.1. Value PropertyVoor 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 2010 Broncode Option Explicit OnOption Strict OnImports 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 ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output <employee>
<name type="fullname">John Smith</name>
</employee> boven
28.11.2. Waardes Aanpassen via Axis PropertiesOok aan de hand van de axis properties kunnen we deze waardes aanpassen, bijvoorbeeld met een attribute axis property als @type : Visual Basic 2010 Broncode 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 ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output <employee>
<name type="fullname">John Smith</name>
</employee> boven
28.11.3. SetElementValue MethodIndien 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 2010 Broncode Namespace ManipulatingXML Class SetElementValueExample Public Shared Sub Main() Dim employee As XElement = <employee> <name>John</name> </employee> employee.SetElementValue(XName.Get( "name"), "John Smith") Console.WriteLine(employee.ToString()) Console.WriteLine() employee.SetElementValue(XName.Get( "name"), Nothing) Console.WriteLine(employee.ToString()) Console.WriteLine() employee.SetElementValue(XName.Get( "name"), "Jane") Console.WriteLine(employee.ToString()) Console.ReadLine() End Sub End ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output <employee>
<name>John Smith</name>
</employee>
<employee />
<employee>
<name>Jane</name>
</employee> boven
28.11.4. SetAttributeValue MethodNaast 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 2010 Broncode 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 ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output <name type="name">John Smith</name>
<name>John Smith</name>
<name type="name">John Smith</name> boven
28.11.5. Attributen Toevoegen of Verwijderen via Axis PropertiesOok via een attribute axis property kunnen we attributen toevoegen of verwijderen : Visual Basic 2010 Broncode 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 ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output <name type="name">John Smith</name>
<name>John Smith</name>
<name type="name">John Smith</name> boven
28.11.6. Toevoegen en Verwijderen van AttributenDe 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 2010 Broncode 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() Console.WriteLine(element.ToString()) element.Add(attribute) Console.WriteLine(element.ToString()) element.RemoveAttributes() Console.ReadLine() End Sub End ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
Console Application Output <name type="name">John Smith</name>
<name>John Smith</name>
<name type="name">John Smith</name> boven
28.11.7. Toevoegen van Child ElementenAan XContainer objecten kan men via methods als Add, AddFirst, AddAfterSelf en AddBeforeSelf XNodes ( zoals XElements ) toevoegen : Visual Basic 2010 Broncode 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 ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
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. boven
28.11.8. Verwijderen van Child ElementenDe 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 2010 Broncode 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() Console.WriteLine(departements.ToString()) Console.WriteLine() departements.RemoveAll() Console.WriteLine(departements.ToString()) Console.ReadLine() End Sub End ClassEnd NamespaceDownload Visual Basic 2010 Broncode Download Visual C# Sourcecode
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 zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
|