Udostępnij za pośrednictwem


Porady: przekształcanie XML za pomocą LINQ (Visual Basic)

Literały XML (Visual Basic)ułatwiają odczytywanie XML z jednego źródła i przekształć ją do nowego formatu XML.Można korzystać z zapytań LINQ do pobierania zawartości do przekształcania lub zmianę zawartości z istniejącego dokumentu do nowego formatu XML.

W przykładzie tego tematu przekształca zawartości z dokumentu źródłowego XML na HTML, aby wyświetlać w przeglądarce.

[!UWAGA]

Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Aby przekształcić dokument XML

  1. W programie Visual Studio, tworzenie nowego projektu Visual Basic w Console Application szablonu projektu.

  2. Kliknij dwukrotnie plik Module1.vb, utworzone w programie project, aby zmodyfikować kod języka Visual Basic.Dodaj następujący kod do Sub Main z Module1 modułu.Kod ten tworzy źródłowej dokumentu XML jako XDocument obiektu.

    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>
    

    Porady: ładowanie XML z pliku, ciągu lub strumienia (Visual Basic).

  3. Po kodzie, aby utworzyć dokument XML źródła Dodaj następujący kod do pobierania wszystkich <Book> elementy z obiektu i przekształcanie ich w dokumencie HTML.Listy <Book> elementy jest tworzony przy użyciu kwerendy LINQ, która zwraca kolekcję XElement obiektów, które zawierają przekształconych HTML.Aby umieścić wartości z dokumentu źródłowego w nowym formacie XML, można użyć wyrażeniach osadzonych.

    Wynikowy dokument HTML jest zapisywany w pliku przy użyciu 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")
    
  4. Po Sub Main z Module1, dodać nową metodę (Sub) do przekształcania <Description> węzeł w określonym formacie HTML.Ta metoda jest wywoływana przez kod w poprzednim kroku i jest używany do zachowania format <Description> elementy.

    Ta metoda zastępuje podrzędne <Description> element HTML.ReplaceWith Metodę zachować lokalizacjê podrzędne.Przekształcony zawartości <Description> element znajduje się w elemencie HTML akapitu (<p>).Nodes Właściwość jest używana do pobierania przekształconych zawartości <Description> element.Gwarantuje to, że elementy podrzędne są uwzględniane w przekształconych zawartości.

    Dodaj następujący kod 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
    
  5. Zapisz wprowadzone zmiany.

  6. Naciśnij klawisz F5, aby uruchomić kod.Zapisany dokument wynikowy będzie podobny do następującego:

    <?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>
    

Zobacz też

Zadania

Porady: ładowanie XML z pliku, ciągu lub strumienia (Visual Basic)

Koncepcje

Wprowadzenie do LINQ w Visual Basic

Inne zasoby

Literały XML (Visual Basic)

Manipulowanie XML w Visual Basic

XML w Visual Basic

LINQ w Visual Basic