Delen via


Overzicht van LINQ naar XML in Visual Basic

Visual Basic biedt ondersteuning voor LINQ tot XML via letterlijke XML-elementen en XML-as eigenschappen. 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 kinderknooppunten, afstammelingenknooppunten en attributen van een XML-letterlijke. 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 gebruik te maken 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.

Opmerking

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.

Knop Afspelen Zie Hoe ga ik aan de slag met LINQ naar XML voor gerelateerde videodemonstraties en hoe maak ik Excel-spreadsheets met LINQ naar XML?

XML maken

Er zijn twee manieren om XML-structuren te maken in Visual Basic. U kunt XML-literalen direct in de 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 benadert 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 Instructie voor import (XML-naamruimte) voor meer informatie.

XML-naamruimten gebruiken in XML-literal'en

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 XML-as eigenschappen. 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)

Zie ook