Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Literály XML usnadňují čtení XML z jednoho zdroje a jejich transformaci do nového formátu XML. Dotazy LINQ můžete využít k načtení obsahu k transformaci nebo změně obsahu v existujícím dokumentu na nový formát XML.
Příklad v tomto tématu transformuje obsah ze zdrojového dokumentu XML na HTML, aby se zobrazil v prohlížeči.
Poznámka:
Počítač může v následujících pokynech zobrazit různé názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Edice sady Visual Studio, kterou máte, a nastavení, která používáte, určují tyto prvky. Další informace najdete v tématu Přizpůsobeníintegrovaného vývojového prostředí (IDE).
Transformace dokumentu XML
V sadě Visual Studio vytvořte nový projekt jazyka Visual Basic v šabloně projektu konzolové aplikace .
Poklikejte na soubor Module1.vb vytvořený v projektu a upravte kód jazyka Visual Basic. Přidejte následující kód do
Sub MainmoduluModule1. Tento kód vytvoří zdrojový dokument XML jako 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>Za kód pro vytvoření zdrojového dokumentu XML přidejte následující kód, který načte všechny
<Book>prvky z objektu a transformuje je do dokumentu HTML. Seznam elementů<Book>se vytvoří pomocí dotazu LINQ, který vrátí kolekci XElement objektů, které obsahují transformovaný kód HTML. Vložené výrazy můžete použít k vložení hodnot ze zdrojového dokumentu v novém formátu XML.Výsledný dokument HTML je zapsán do souboru pomocí Save metody.
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")Za
Sub MainpříkazemModule1přidejte novou metoduSub, která převede uzel typu<Description>do zadaného formátu HTML. Tato metoda je volána kódem v předchozím kroku a slouží k zachování formátu<Description>prvků.Tato metoda nahrazuje dílčí prvky elementu
<Description>pomocí HTML. MetodaReplaceWithse používá k zachování umístění dílčích prvků. Transformovaný obsah elementu<Description>je součástí elementu HTML (<p>). Vlastnost Nodes se používá k načtení transformovaného obsahu elementu<Description>. Tím zajistíte, že jsou dílčí prvky zahrnuté do transformovaného obsahu.Přidejte následující kód za
Sub MainzModule1.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 FunctionUložte změny.
Stisknutím klávesy F5 kód spusťte. Výsledný uložený dokument bude vypadat přibližně 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>