Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az XML-literálok megkönnyítik az XML olvasását egy forrásból, és átalakítják egy új XML-formátumra. A LINQ-lekérdezések segítségével lekérheti a tartalmat az átalakításhoz, vagy egy meglévő dokumentum tartalmát új XML-formátumra módosíthatja.
A jelen témakörben szereplő példa egy XML-forrásdokumentum tartalmát HTML-fájllá alakítja, hogy megtekintse a böngészőben.
Megjegyzés:
Előfordulhat, hogy a számítógép különböző neveket vagy helyeket jelenít meg a Visual Studio felhasználói felületének egyes elemeihez az alábbi utasításokban. Ezeket az elemeket a Visual Studio-kiadás és a használt beállítások határozzák meg. További információért lásd: A fejlesztői környezet személyre szabása.
XML-dokumentum átalakítása
A Visual Studióban hozzon létre egy új Visual Basic-projektet a konzolalkalmazás projektsablonjában.
Kattintson duplán a projektben létrehozott Module1.vb fájlra a Visual Basic-kód módosításához. Adja hozzá a következő kódot a
Sub MainModule1modulhoz. Ez a kód objektumként hozza létre a forrás XML-dokumentumot 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>A forrás XML-dokumentum létrehozásához használt kód után adja hozzá a következő kódot az objektum összes elemének
<Book>lekéréséhez és HTML-dokumentummá alakításához. A<Book>elemek listáját egy LINQ-lekérdezés hozza létre, amely visszaad egy XElement objektumgyűjteményt, amely tartalmazza az átalakított HTML-t. Beágyazott kifejezések használatával a forrásdokumentum értékeit az új XML-formátumban helyezheti el.Az eredményként kapott HTML-dokumentumot a rendszer a Save metódus használatával egy fájlba írja.
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 MainEzutánModule1adjon hozzá egy új metódust (Sub) a<Description>csomópont megadott HTML-formátumba való átalakításához. Ezt a metódust az előző lépésben szereplő kód hívja meg, és az elemek formátumának<Description>megőrzésére szolgál.Ez a módszer az
<Description>elem alelemeit HTML-re cseréli. AReplaceWithmetódus az alelemek helyének megőrzésére szolgál. Az elem átalakított tartalma<Description>egy HTML-bekezdés (<p>) elem részét képezi. A Nodes tulajdonság a<Description>elem átalakított tartalmának lekérésére szolgál. Ez biztosítja, hogy az alelemek bekerülnek az átalakított tartalomba.Adja hozzá a következő kódot a
Sub Mainután aModule1.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 FunctionMentse a módosításokat.
Nyomja le az F5 billentyűt a kód futtatásához. Az eredményül kapott mentett dokumentum a következőhöz fog hasonlítni:
<?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>