Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Les littéraux XML facilitent la lecture du code XML à partir d’une source et la transforment en un nouveau format XML. Vous pouvez tirer parti des requêtes LINQ pour récupérer le contenu à transformer ou modifier du contenu dans un document existant dans un nouveau format XML.
L’exemple de cette rubrique transforme le contenu d’un document source XML en html à afficher dans un navigateur.
Remarque
Votre ordinateur peut afficher différents noms ou emplacements pour certains des éléments de l’interface utilisateur Visual Studio dans les instructions suivantes. L’édition Visual Studio que vous avez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d’informations, consultez Personnaliser l’IDE.
Pour transformer un document XML
Dans Visual Studio, créez un projet Visual Basic dans le modèle de projet Application console .
Double-cliquez sur le fichier Module1.vb créé dans le projet pour modifier le code Visual Basic. Ajoutez le code suivant au
Sub Maindu moduleModule1. Ce code crée le document XML source en tant qu’objet XDocument .Dim catalog = <?xml version="1.0"?> <Catalog> <Book id="bk101"> <Author>Garghentini, Davide</Author> <Title>XML Developer's Guide</Title> <Price>44.95</Price> <Description> An in-depth look at creating applications with <technology>XML</technology>. For <audience>beginners</audience> or <audience>advanced</audience> developers. </Description> </Book> <Book id="bk331"> <Author>Spencer, Phil</Author> <Title>Developing Applications with Visual Basic .NET</Title> <Price>45.95</Price> <Description> Get the expert insights, practical code samples, and best practices you need to advance your expertise with <technology>Visual Basic .NET</technology>. Learn how to create faster, more reliable applications based on professional, pragmatic guidance by today's top <audience>developers</audience>. </Description> </Book> </Catalog>Guide pratique pour charger du code XML à partir d’un fichier, d’une chaîne ou d’un flux.
Après avoir créé le document XML source, ajoutez le code suivant pour récupérer tous les
<Book>éléments de l’objet et les transformer en document HTML. La liste des<Book>éléments est créée à l’aide d’une requête LINQ qui retourne une collection d’objets XElement qui contiennent le code HTML transformé. Vous pouvez utiliser des expressions incorporées pour placer les valeurs du document source dans le nouveau format XML.Le document HTML obtenu est écrit dans un fichier à l’aide de la Save méthode.
Dim htmlOutput = <html> <body> <%= From book In catalog.<Catalog>.<Book> Select <div> <h1><%= book.<Title>.Value %></h1> <h3><%= "By " & book.<Author>.Value %></h3> <h3><%= "Price = " & book.<Price>.Value %></h3> <h2>Description</h2> <%= TransformDescription(book.<Description>(0)) %> <hr/> </div> %> </body> </html> htmlOutput.Save("BookDescription.html")Sub MainAprèsModule1, ajoutez une nouvelle méthode (Sub) pour transformer un nœud<Description>en format HTML spécifié. Cette méthode est appelée par le code de l’étape précédente et est utilisée pour conserver le format des<Description>éléments.Cette méthode remplace les sous-éléments de l’élément
<Description>par du code HTML. LaReplaceWithméthode est utilisée pour conserver l’emplacement des sous-éléments. Le contenu transformé de l’élément<Description>est inclus dans un élément de paragraphe HTML (<p>). La Nodes propriété est utilisée pour récupérer le contenu transformé de l’élément<Description>. Cela garantit que les sous-éléments sont inclus dans le contenu transformé.Ajoutez le code suivant après
Sub MainModule1.Public Function TransformDescription(ByVal desc As XElement) As XElement ' Replace <technology> elements with <b>. Dim content = (From element In desc...<technology>).ToList() If content.Count > 0 Then For i = 0 To content.Count - 1 content(i).ReplaceWith(<b><%= content(i).Value %></b>) Next End If ' Replace <audience> elements with <i>. content = (From element In desc...<audience>).ToList() If content.Count > 0 Then For i = 0 To content.Count - 1 content(i).ReplaceWith(<i><%= content(i).Value %></i>) Next End If ' Return the updated contents of the <Description> element. Return <p><%= desc.Nodes %></p> End FunctionEnregistrez vos modifications.
Appuyez sur F5 pour exécuter le code. Le document enregistré obtenu ressemble à ce qui suit :
<?xml version="1.0"?> <html> <body> <div> <h1>XML Developer's Guide</h1> <h3>By Garghentini, Davide</h3> <h3>Price = 44.95</h3> <h2>Description</h2> <p> An in-depth look at creating applications with <b>XML</b>. For <i>beginners</i> or <i>advanced</i> developers. </p> <hr /> </div> <div> <h1>Developing Applications with Visual Basic .NET</h1> <h3>By Spencer, Phil</h3> <h3>Price = 45.95</h3> <h2>Description</h2> <p> Get the expert insights, practical code samples, and best practices you need to advance your expertise with <b>Visual Basic .NET</b>. Learn how to create faster, more reliable applications based on professional, pragmatic guidance by today's top <i>developers</i>. </p> <hr /> </div> </body> </html>