Aracılığıyla paylaş


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

  1. Visual Studio'da yeni bir Visual Basic projesinde oluşturmak Console Application proje şablonu.

  2. 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.

  3. 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")
    
  4. 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
    
  5. Değişikliklerinizi kaydedin.

  6. 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

Kavramlar

LINQ Visual Basic giriş

Diğer Kaynaklar

xml değişmezleri (Visual Basic)

Visual Basic'te xml işleme

Visual Basic'te xml

Visual Basic'te LINQ