Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os literais XML facilitam ler XML de uma fonte e transformá-lo num novo formato XML. Você pode aproveitar as consultas LINQ para recuperar o conteúdo a ser transformado ou alterar o conteúdo de um documento existente para um novo formato XML.
O exemplo neste tópico transforma o conteúdo de um documento de origem XML em HTML para ser exibido em um navegador.
Observação
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você tem e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Personalizando o IDE.
Para transformar um documento XML
No Visual Studio, crie um novo projeto do Visual Basic no modelo de projeto Aplicativo de Console .
Clique duas vezes no arquivo de Module1.vb criado no projeto para modificar o código do Visual Basic. Adicione o seguinte código na
Sub Maindo móduloModule1. Este código cria o documento XML de origem como um XDocument objeto.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>Como: Carregar XML de um arquivo, cadeia de caracteres ou fluxo.
Após o código para criar o documento XML de origem, adicione o seguinte código para recuperar todos os
<Book>elementos do objeto e transformá-los num documento HTML. A lista de<Book>elementos é criada usando uma consulta LINQ que devolve uma coleção de XElement objetos que contêm o HTML transformado. Você pode usar expressões incorporadas para colocar os valores do documento de origem no novo formato XML.O documento HTML resultante é gravado em um arquivo usando o Save método.
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")Após
Sub Main,Module1adicione um novo método (Sub) para transformar uma nó de<Description>no formato HTML especificado. Este método é chamado pelo código do passo anterior e é usado para preservar o formato dos<Description>elementos.Este método substitui subelementos do
<Description>elemento por HTML. OReplaceWithmétodo é usado para preservar a localização dos subelementos. O conteúdo transformado do<Description>elemento está incluído num elemento de parágrafo HTML (<p>). A Nodes propriedade é usada para recuperar o conteúdo transformado do<Description>elemento. Isso garante que os subelementos sejam incluídos no conteúdo transformado.Adicione o seguinte código após
Sub MainModule1.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 FunctionSalve suas alterações.
Pressione F5 para executar o código. O documento salvo resultante será semelhante ao seguinte:
<?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>