Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
XML-literaler gör det enkelt att läsa XML från en källa och transformera den till ett nytt XML-format. Du kan dra nytta av LINQ-frågor för att hämta innehållet för att transformera eller ändra innehåll i ett befintligt dokument till ett nytt XML-format.
Exemplet i det här avsnittet omvandlar innehåll från ett XML-källdokument till HTML så att det visas i en webbläsare.
Anmärkning
Datorn kan visa olika namn eller platser för vissa av Visual Studio-användargränssnittselementen i följande instruktioner. Den Visual Studio-utgåva som du har och de inställningar som du använder avgör dessa element. Mer information finns i Anpassning av utvecklingsmiljön.
Transformera ett XML-dokument
Skapa ett nytt Visual Basic-projekt i projektmallen Konsolprogram i Visual Studio.
Dubbelklicka på den Module1.vb fil som skapades i projektet för att ändra Visual Basic-koden. Lägg till följande kod i
Sub MainmodulenModule1. Den här koden skapar XML-källdokumentet som ett XDocument objekt.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>Anvisningar: Läsa in XML från en fil, sträng eller dataström.
Efter koden för att skapa XML-källdokumentet lägger du till följande kod för att hämta alla
<Book>element från objektet och transformera dem till ett HTML-dokument. Listan över<Book>element skapas med hjälp av en LINQ-fråga som returnerar en samling XElement objekt som innehåller den omvandlade HTML-koden. Du kan använda inbäddade uttryck för att placera värdena från källdokumentet i det nya XML-formatet.Det resulterande HTML-dokumentet skrivs till en fil med hjälp Save av metoden .
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 MainEfterModule1lägger du till en ny metod (Sub) för att omvandla en<Description>nod till det angivna HTML-formatet. Den här metoden anropas av koden i föregående steg och används för att bevara elementens<Description>format.Den här metoden ersätter elementets
<Description>underelement med HTML. MetodenReplaceWithanvänds för att bevara platsen för underelementen. Elementets<Description>transformerade innehåll ingår i ett HTML-stycke (<p>). Egenskapen Nodes används för att hämta det transformerade innehållet i elementet<Description>. Detta säkerställer att underelement ingår i det transformerade innehållet.Lägg till följande kod efter
Sub MainavModule1.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 FunctionSpara ändringarna.
Tryck på F5 för att köra koden. Det resulterande sparade dokumentet liknar följande:
<?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>