Delen via


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.

Play buttonZie 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)

Zie ook