Vue d'ensemble de LINQ to XML dans Visual Basic

Visual Basic prend en charge LINQ to XML via des littéraux XML et des propriétés d’axe XML. Cela vous permet d’utiliser une syntaxe familière et pratique pour utiliser XML dans votre code Visual Basic. Les littéraux XML vous permettent d’inclure directement du XML dans votre code. Les propriétés d’axe XML vous permettent d’accéder aux nœuds enfants, aux nœuds descendants et aux attributs d’un littéral XML. Pour plus d’informations, consultez Vue d’ensemble des littéraux XML et Accès au XML en Visual Basic.

LINQ to XML est une API de programmation XML en mémoire conçue spécifiquement pour tirer parti de Language-Integrated Query (LINQ). Bien que vous puissiez appeler directement les API LINQ, seul Visual Basic vous permet de déclarer des littéraux XML et d’accéder directement aux propriétés de l’axe XML.

Notes

Les littéraux XML et les propriétés d’axe XML ne sont pas pris en charge dans le code déclaratif d’une page ASP.NET. Pour utiliser les fonctionnalités XML de Visual Basic, placez votre code dans une page code-behind dans votre application ASP.NET.

Play button Pour obtenir des démonstrations vidéo associées, consultez Bien démarrer avec LINQ to XML et Créer des feuilles de calcul Excel avec LINQ to XML.

Création de code XML

Il existe deux façons de créer des arborescences XML en Visual Basic. Vous pouvez déclarer un littéral XML directement dans le code, ou vous pouvez utiliser les API LINQ pour créer l’arborescence. Les deux processus permettent au code de refléter la structure finale de l’arborescence XML. Par exemple, l’exemple de code suivant crée un élément XML :

Dim contact1 As XElement = 
    <contact>
      <name>Patrick Hines</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

Pour plus d’informations, consultez Création de XML en Visual Basic.

Accès au code XML et navigation

Visual Basic fournit des propriétés d’axe XML pour accéder aux structures XML et les parcourir. Ces propriétés vous permettent d’accéder aux éléments et attributs XML en spécifiant les noms d’éléments enfants XML. Vous pouvez également appeler explicitement les méthodes LINQ pour la navigation et la localisation d’éléments et d’attributs. Par exemple, l’exemple de code suivant utilise des propriétés d’axe XML pour faire référence aux attributs et aux éléments enfants d’un élément XML. L’exemple de code utilise une requête LINQ pour récupérer des éléments enfants et les émettre en tant qu’éléments XML, en effectuant de fait une transformation.

' 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

Pour plus d’informations, consultez Accès au XML en Visual Basic.

Espaces de noms XML

Visual Basic vous permet de spécifier un alias pour un espace de noms XML global à l’aide de l’instruction Imports. L’exemple suivant montre comment utiliser l’instruction Imports pour importer un espace de noms XML :

Imports <xmlns:ns="http://someNamespace">

Vous pouvez utiliser un alias d’espace de noms XML lorsque vous accédez aux propriétés de l’axe XML et déclarez des littéraux XML pour des documents et des éléments XML.

Vous pouvez récupérer un objet XNamespace pour un préfixe d’espace de noms particulier à l’aide de l’opérateur GetXmlNamespace.

Pour plus d’informations, consultez Imports, instruction (espace de noms XML).

Utilisation d’espaces de noms XML dans des littéraux XML

L’exemple suivant montre comment créer un objet XElement qui utilise l’espace de noms global 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)

Le compilateur Visual Basic traduit les littéraux XML qui contiennent des alias d’espace de noms XML en code équivalent qui utilise la notation XML pour l’utilisation des espaces de noms XML, avec l’attribut xmlns. Une fois compilé, le code de l’exemple de la section précédente produit essentiellement le même code exécutable que l’exemple suivant :

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)

Utilisation d’espaces de noms XML dans les propriétés de l’axe XML

Les espaces de noms XML déclarés dans les littéraux XML ne sont pas disponibles pour une utilisation dans les propriétés de l’axe XML. Toutefois, les espaces de noms globaux peuvent être utilisés avec les propriétés de l’axe XML. Utilisez un signe deux-points pour séparer le préfixe de l’espace de noms XML du nom de l’élément local. Vous trouverez ci-dessous un exemple :

Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)

Voir aussi