Partager via


Vue d’ensemble de LINQ to XML en 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 du code XML dans votre code Visual Basic. Les littéraux XML vous permettent d’inclure du code XML directement dans votre code. Les propriétés de l’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 code XML dans Visual Basic.

LINQ to XML est une API de programmation XML en mémoire conçue spécifiquement pour tirer parti de Language-Integrated Requête (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.

Remarque

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

Bouton Lire Pour obtenir des démonstrations vidéo connexes, consultez Comment bien démarrer avec LINQ to XML ? et Comment créer des feuilles de calcul Excel à l’aide de LINQ to XML ?.

Création de code XML

Il existe deux façons de créer des arborescences XML dans 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 code XML dans Visual Basic.

Accès et navigation xml

Visual Basic fournit des propriétés d’axe XML pour accéder aux structures XML et y naviguer. 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 générer en tant qu’éléments XML, effectuant efficacement 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 code XML en Visual Basic.

Espaces de noms XML

Visual Basic vous permet de spécifier un alias dans 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 les documents et éléments XML.

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

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

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

L’exemple suivant montre comment créer un XElement objet qui utilise l’espace de noms nsglobal :

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 des littéraux XML qui contiennent des alias d’espace de noms XML en code équivalent qui utilise la notation XML pour l’utilisation d’espaces de noms XML, avec l’attribut xmlns . Lorsqu’il est 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 d’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