Visão geral do LINQ to XML em Visual Basic
Visual Basic fornece suporte para LINQ to XML através de literais XML e propriedades de eixo XML.Isso permite que você use uma sintaxe conveniente e familiar para trabalhar com XML no seu Visual Basic código. Literais XML permitem que você incluir o XML diretamente em seu código.Propriedades de eixo XML permitem acesso a nós filhos, nós descendentes e atributos de uma literal XML.Para obter mais informações, consulte Visão geral do literais XML (Visual Basic) e Acessando o XML no Visual Basic.
LINQ to XML é uma API de programação XML de memória projetada especificamente para aproveitar LINQ (Consulta Integrada à Linguagem).Embora você possa chamar as APIs LINQ diretamente, Visual Basic somente permite que você declare literais XML e acesse propriedades do eixo XML diretamente.
Observação |
---|
Não há suporte para literais XML e propriedades de eixo XML no código declarativo em um página ASP.NET.Para usar recursos Visual Basic XML, coloque o código em uma página code-behind no seu aplicativo ASP.NET. |
Para demonstrações de vídeo relacionadas, consulte como fazer começar com os LINQ to XML? e Como faço para criar planilhas do Excel usando o LINQ to XML?.
Criando XML
Há duas maneiras para criar árvores XML em Visual Basic.Você pode declarar um literal XML diretamente no código, ou você pode usar as APIs LINQ para criar a árvore.Os dois processos permitem ao código refletir a estrutura final da árvore do XML.Por exemplo, o exemplo de código a seguir cria um elemento XML:
Dim contact1 As XElement =
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
Para obter mais informações, consulte Criando XML no Visual Basic.
Acesso e Navegação XML
Visual Basic fornece propriedades de eixo XML para acessar e navegar por estruturas XML.Essas propriedades permitem que você acesse elementos e atributos XML, especificando os nomes dos elementos XML filhos.Como alternativa, você pode chamar os métodos LINQ explicitamente para navegar e localizar elementos e atributos.Por exemplo, o seguinte exemplo de código usa propriedades do eixo XML para se referir aos atributos e elementos filhos de um elemento XML.O exemplo de código usa uma consulta LINQ para recuperar elementos filhos e de retorná-los como elementos XML, de forma eficaz, executando uma transformação.
' Place Imports statements at the top of your program.
Imports <xmlns:ns="http://SomeNamespace">
Module Sample1
Sub SampleTransform()
' Create test by using a global XML namespace prefix.
Dim contact =
<ns:contact>
<ns:name>Patrick Hines</ns:name>
<ns:phone ns:type="home">206-555-0144</ns:phone>
<ns:phone ns:type="work">425-555-0145</ns:phone>
</ns:contact>
Dim phoneTypes =
<phoneTypes>
<%= From phone In contact.<ns:phone>
Select <type><%= phone.@ns:type %></type>
%>
</phoneTypes>
Console.WriteLine(phoneTypes)
End Sub
End Module
Para obter mais informações, consulte Acessando o XML no Visual Basic.
Namespaces XML
Visual Basic permite que você especifique um alias para um namespace para XML global usando a instrução Imports.O exemplo a seguir mostra como usar a instrução Imports para importar um namespace para XML:
Imports <xmlns:ns="http://someNamespace">
Você pode usar um alias de namespace para XML quando você acessar propriedades do eixo XML e declarar literais XML para documentos e elementos XML.
Você pode recuperar um objeto XNamespace para um determinado prefixo de namespace usando o Operador GetXmlNamespace (Visual Basic).
Para obter mais informações, consulte Declaração Imports (Namespace XML).
Usando Namespaces XML em literais XML
O exemplo a seguir mostra como criar um objeto XElement que usa o namespace global ns:
Dim contact1 As XElement =
<ns:contact>
<ns:name>Patrick Hines</ns:name>
<ns:phone type="home">206-555-0144</ns:phone>
<ns:phone type="work">425-555-0145</ns:phone>
</ns:contact>
Console.WriteLine(contact1)
O compilador Visual Basic converte literais XML que contêm alias de namespace para XML em código equivalente que usa a notação XML para namespaces XML, com o atributo xmlns.Quando compilado, o código no exemplo da seção anterior produz basicamente o mesmo código executável que o exemplo a seguir:
Dim contact2 As XElement =
<ns1:contact xmlns:ns1="http://someNamespace">
<ns1:name>Patrick Hines</ns1:name>
<ns1:phone type="home">206-555-0144</ns1:phone>
<ns1:phone type="work">425-555-0145</ns1:phone>
</ns1:contact>
Console.WriteLine(contact2)
Usando Namespaces XML em propriedades do eixo XML
Namespaces para XML declarados em literais XML não estão disponíveis para uso em eixo de propriedades XML.No entanto, namespaces globais podem ser usados com as propriedades do eixo XML.Use dois-pontos para separar o prefixo do namespace para XML do nome de elemento local.A seguir, há um exemplo:
Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)