Overzicht van LINQ naar XML in Visual Basic
Visual Basic biedt ondersteuning voor LINQ naar XML via letterlijke XML- en XML-aseigenschappen. Hiermee kunt u een vertrouwde, handige syntaxis gebruiken voor het werken met XML in uw Visual Basic-code. Met XML-letterlijke gegevens kunt u XML rechtstreeks in uw code opnemen. Met eigenschappen van de XML-as hebt u toegang tot onderliggende knooppunten, onderliggende knooppunten en kenmerken van een letterlijke XML-waarde. Zie Overzicht van XML-letterlijke gegevens en toegang tot XML in Visual Basic voor meer informatie.
LINQ naar XML is een IN-memory XML-programmeer-API die speciaal is ontworpen om te profiteren van Language-Integrated Query (LINQ). Hoewel u de LINQ-API's rechtstreeks kunt aanroepen, kunt u met alleen Visual Basic letterlijke XML-waarden declareren en rechtstreeks toegang krijgen tot de eigenschappen van de XML-as.
Notitie
Letterlijke XML-waarden en eigenschappen van XML-as worden niet ondersteund in declaratieve code op een ASP.NET pagina. Als u Visual Basic XML-functies wilt gebruiken, plaatst u uw code op een pagina achter code in uw ASP.NET toepassing.
Zie Hoe ga ik aan de slag met LINQ naar XML voor gerelateerde videodemonstraties enhoe maak ik Excel-spreadsheets met LINQ naar XML?
XML maken
Er zijn twee manieren om XML-structuren te maken in Visual Basic. U kunt een LETTERLIJKe XML rechtstreeks in code declareren of u kunt de LINQ-API's gebruiken om de structuur te maken. Met beide processen kan de code de uiteindelijke structuur van de XML-structuur weerspiegelen. In het volgende codevoorbeeld wordt bijvoorbeeld een XML-element gemaakt:
Dim contact1 As XElement =
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
Zie XML maken in Visual Basic voor meer informatie.
XML openen en navigeren
Visual Basic biedt eigenschappen voor XML-as voor toegang tot en navigatie door XML-structuren. Met deze eigenschappen hebt u toegang tot XML-elementen en -kenmerken door de namen van onderliggende XML-elementen op te geven. U kunt ook expliciet de LINQ-methoden aanroepen voor het navigeren en zoeken naar elementen en kenmerken. In het volgende codevoorbeeld worden bijvoorbeeld eigenschappen van de XML-as gebruikt om te verwijzen naar de kenmerken en onderliggende elementen van een XML-element. In het codevoorbeeld wordt een LINQ-query gebruikt om onderliggende elementen op te halen en deze uit te voeren als XML-elementen, waardoor een transformatie effectief wordt uitgevoerd.
' Place Imports statements at the top of your program.
Imports <xmlns:ns="http://SomeNamespace">
Module Sample1
Sub SampleTransform()
' Create test by using a global XML namespace prefix.
Dim contact =
<ns:contact>
<ns:name>Patrick Hines</ns:name>
<ns:phone ns:type="home">206-555-0144</ns:phone>
<ns:phone ns:type="work">425-555-0145</ns:phone>
</ns:contact>
Dim phoneTypes =
<phoneTypes>
<%= From phone In contact.<ns:phone>
Select <type><%= phone.@ns:type %></type>
%>
</phoneTypes>
Console.WriteLine(phoneTypes)
End Sub
End Module
Zie Accessing XML in Visual Basic voor meer informatie.
XML-naamruimten
Met Visual Basic kunt u een alias opgeven voor een algemene XML-naamruimte met behulp van de Imports
instructie. In het volgende voorbeeld ziet u hoe u de Imports
instructie gebruikt om een XML-naamruimte te importeren:
Imports <xmlns:ns="http://someNamespace">
U kunt een XML-naamruimtealias gebruiken wanneer u de eigenschappen van de XML-as opent en XML-letterlijke waarden declareert voor XML-documenten en -elementen.
U kunt een XNamespace object voor een bepaald naamruimtevoorvoegsel ophalen met behulp van de Operator GetXmlNamespace.
Zie Importinstructie (XML-naamruimte) voor meer informatie.
XML-naamruimten gebruiken in LETTERLIJKE XML-tekens
In het volgende voorbeeld ziet u hoe u een XElement object maakt dat gebruikmaakt van de globale naamruimte ns
:
Dim contact1 As XElement =
<ns:contact>
<ns:name>Patrick Hines</ns:name>
<ns:phone type="home">206-555-0144</ns:phone>
<ns:phone type="work">425-555-0145</ns:phone>
</ns:contact>
Console.WriteLine(contact1)
De Visual Basic-compiler vertaalt XML-letterlijke waarden die XML-naamruimtealiassen bevatten in equivalente code die gebruikmaakt van de XML-notatie voor het gebruik van XML-naamruimten, met het xmlns
kenmerk. Wanneer de code in het voorbeeld van de vorige sectie wordt gecompileerd, produceert deze in feite dezelfde uitvoerbare code als in het volgende voorbeeld:
Dim contact2 As XElement =
<ns1:contact xmlns:ns1="http://someNamespace">
<ns1:name>Patrick Hines</ns1:name>
<ns1:phone type="home">206-555-0144</ns1:phone>
<ns1:phone type="work">425-555-0145</ns1:phone>
</ns1:contact>
Console.WriteLine(contact2)
XML-naamruimten gebruiken in eigenschappen van XML-as
XML-naamruimten die zijn gedeclareerd in letterlijke XML-waarden zijn niet beschikbaar voor gebruik in eigenschappen van xml-as. Globale naamruimten kunnen echter worden gebruikt met de eigenschappen van de XML-as. Gebruik een dubbele punt om het voorvoegsel van de XML-naamruimte te scheiden van de naam van het lokale element. Hier volgt een voorbeeld:
Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)