Postupy: Transformace XML pomocí LINQ (Visual Basic)
Literály XML (Visual Basic)usnadňuje čtení dat XML z jednoho zdroje a převést do nového formátu XML.Můžete využít výhod LINQ dotazů načíst obsah transformace nebo měnit obsah existujícího dokumentu do nového formátu XML.
Příklad v tomto tématu převádí obsah ze zdrojového dokumentu XML do formátu HTML, které lze zobrazit v prohlížeči.
[!POZNÁMKA]
Na vašem počítači se můžou v následujících pokynech zobrazovat jiné názvy nebo umístění některých prvků uživatelského rozhraní Visual Studia. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.
K transformaci dokumentu XML
V aplikaci Visual Studio, vytvořit nový projekt aplikace Visual Basic v Aplikace konzoly šablona projektu.
Poklepejte na soubor Module1.vb, vytvořené v projektu změnit kód jazyka Visual Basic.Přidejte následující kód Sub Main z Module1 modulu.Tento kód vytvoří zdrojového dokumentu XML, jako XDocument objektu.
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>
Postupy: Načtení XML ze souboru, řetězce nebo proudu (Visual Basic).
Po vytvoření zdrojového dokumentu XML kódu přidejte následující kód načíst všechny <Book> prvky z objektu a převádět je do dokumentu HTML.Seznam <Book> prvky je vytvořen pomocí LINQ dotaz, který vrátí kolekci XElement objekty, které obsahují transformovaný HTML.Vložte hodnoty ze zdrojového dokumentu v novém formátu XML, můžete použít vložené výrazy.
Výsledný dokument HTML je zapsán do souboru pomocí Save metoda.
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")
Po Sub Main z Module1, přidat novou metodu (Sub) <Description> Transformace uzel do zadaného formátu HTML.Tato metoda se nazývá kódu v předchozím kroku a slouží k zachování formátu <Description> prvky.
Tato metoda nahradí dispozici <Description> prvek HTML.ReplaceWith Metoda slouží k zachování umístění dispozici.Transformovaný obsahu <Description> prvek je součástí prvku HTML odstavec (<p>).Nodes Vlastnosti lze načíst transformovaný obsah <Description> prvek.Tím je zajištěno dispozici jsou součástí transformovaný obsahu.
Přidejte následující kód po Sub Main z Module1.
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 Function
Uložte provedené změny.
Stisknutím klávesy F5 spustit kód.Výsledný dokument uložili bude vypadat takto:
<?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>
Viz také
Úkoly
Postupy: Načtení XML ze souboru, řetězce nebo proudu (Visual Basic)
Koncepty
Představení technologie LINQ v jazyce Visual Basic