Nasıl yapılır: xml LINQ (Visual Basic) kullanarak dönüştürme
xml değişmezleri (Visual Basic)bir kaynaktan xml okuyun ve yeni bir xml biçimine dönüştürmek kolaylaştırır.LINQ sorguları dönüştürmek için içeriği almak için yararlanmak veya varolan bir belgeyi içeriğinde yeni bir xml biçimine değiştirin.
Bu konudaki örnek bir xml kaynak belgeden içerik tarayıcıda görüntülenecek HTML dönüştürür.
[!NOT]
Bilgisayarınızda, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazılarının adı veya konumu farklı gösterilebilir. Bu öğeleri bilgisayarınızdaki Visual Studio sürümü ve kullandığınız ayarlar belirler. Daha fazla bilgi için bkz: Visual Studio ayarları.
Bir xml belgesine dönüştürmek için
Visual Studio'da yeni bir Visual Basic projesinde oluşturmak Console Application proje şablonu.
Visual Basic kodunu değiştirmek için Project'te oluşturulan Module1.vb dosyasını çift tıklatın.Aşağıdaki kodu ekleyip Sub Main , Module1 modülü.Kaynak xml belgesi olarak bu kodu oluşturur bir XDocument nesne.
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>
Nasıl yapılır: xml dosyası, dize veya akış (Visual Basic) yüklemek.
Kaynak xml belgesi oluşturmak için kod sonra tüm <Book> almak için aşağıdaki kodu ekleyin nesneden öğeleri ve bunların bir html belgesine dönüştürmek.<Book> listesi öğeler koleksiyonu döndüren bir LINQ sorgusu kullanarak oluşturulur XElement dönüştürülmüş html içeren nesneleri.Yeni xml biçiminde kaynak belgeden değerleri yerleştirmek için gömülü ifadeleri kullanabilirsiniz.
Sonuçta elde edilen html belgesi kullanılarak bir dosyaya yazılır Save yöntemi.
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")
Sonra Sub Main , Module1, yeni bir metot ekleyin (Sub) <Description> dönüştürmek için düğüm belirtilen html biçimine.Bu yöntem önceki adımda kodu tarafından çağrılan ve <Description> biçimini korumak için kullanılır öğeleri.
Bu yöntem <Description> alt yerini alır. html ile öğesi.ReplaceWith Yöntemi alt konumunu korumak için kullanılır.<Description> dönüştürülen içeriği öğe bir html paragraf (<p>) öğesi eklenir.Nodes <Description> dönüştürülen içeriği almak için kullanılan özellik öğe.Bu, alt öğeler dönüştürülmüş içerik içerdiği sağlar.
Sonra aşağıdaki kodu ekleyip Sub Main , 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
Değişikliklerinizi kaydedin.
Kod çalıştırmak için F5 tuşuna basın.Belge kaydedildiğinde sonuç aşağıdakine benzer:
<?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>
Ayrıca bkz.
Görevler
Nasıl yapılır: xml dosyası, dize veya akış (Visual Basic) yüklemek