Vue d'ensemble de LINQ to XML dans Visual Basic
Visual Basic offre une prise en charge de LINQ to XML via les littéraux et les propriétés d'axe XML. Vous pouvez ainsi faire appel à une syntaxe pratique et familière 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 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 (Visual Basic) et Accès au code XML dans Visual Basic.
LINQ to XML est une API de programmation XML en mémoire qui est 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.
Notes
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.
Pour des démonstrations vidéo connexes, consultez How Do I Get Started with LINQ to XML? et How Do I Create Excel Spreadsheets using LINQ to XML?.
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 des éléments et des 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 Opérateur GetXmlNamespace (Visual Basic).
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
Création de code XML dans Visual Basic