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
W programie Visual Studio, tworzenie nowego projektu Visual Basic w Console Application szablonu projektu.
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).
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")
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
Zapisz wprowadzone zmiany.
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