Partager via


Vue d'ensemble de LINQ to XML dans Visual Basic

Mise à jour : novembre 2007

Visual Basic offre une prise en charge de LINQ to XML via les littéraux XML et les propriétés d'axe XML. Cela vous permet d'utiliser une syntaxe pratique et familière pour utiliser le 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, nœuds descendants et 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 spécifiquement conçue pour tirer parti de LINQ (Language Integrated Query). Bien que vous puissiez appeler les API LINQ directement, seul Visual Basic vous permet de déclarer des littéraux XML et d'accéder directement aux propriétés d'axe XML.

Remarque :

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

Création d'éléments XML

Il existe deux manières de créer des arborescences XML dans Visual Basic. Vous pouvez déclarer directement un littéral XML dans le code ou utiliser les API LINQ pour créer l'arborescence. Ces 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 dans XML

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 aux attributs XML en spécifiant les noms des éléments enfants XML. Vous pouvez également appeler explicitement les méthodes LINQ pour parcourir et localiser les éléments et les attributs. Par exemple, l'exemple de code suivant utilise des propriétés d'axe XML pour faire référence aux attributs et é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 sortir comme éléments XML, en 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 dans Visual Basic.

Espaces de noms XML

Visual Basic vous permet de spécifier un alias pour un espace de noms XML global en utilisant l'instruction Imports. L'exemple suivant indique 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 à des propriétés d'axe XML et déclarez des littéraux XML pour les documents et les éléments XML.

Vous pouvez récupérer un objet XNamespace pour un préfixe d'espace de noms particulier en utilisant le GetXmlNamespace, opérateur.

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

Utilisation d'espaces de noms XML dans les littéraux XML

L'exemple suivant indique comment créer un objet XElement utilisant 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 se sert de la notation XML pour utiliser 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 d'axe XML

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

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

Voir aussi

Autres ressources

XML en Visual Basic

Création de code XML dans Visual Basic

Accès au code XML dans Visual Basic

Manipulation de code XML dans Visual Basic