![]() |
![]() |
Neste tutorial veremos como fazer o parser em arquivos XML usando o Xamarin Forms. |
Eu já tratei do acesso a arquivos usando a PCL Storage neste artigo aqui.
Hoje vou mostrar como fazer uma análise ou parser de arquivos XML, acessando e exibindo as informações neles contidas.
Vamos supor que temos um arquivo XML com o seguinte conteúdo:
<?xml version="1.0" encoding="utf-8" ?>
<ArrayOfCliente xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Cliente>
<Id>100</Id>
<Nome>Macoratti</Nome>
<Origem>Brasil</Origem>
</Cliente>
<Cliente>
<Id>200</Id>
<Nome>Yuri</Nome>
<Origem>Russia</Origem>
</Cliente>
<Cliente>
<Id>300</Id>
<Nome>Jessica</Nome>
<Origem>Inglaterra</Origem>
</Cliente>
<Cliente>
<Id>400</Id>
<Nome>Evelyn</Nome>
<Origem>USA</Origem>
</Cliente>
<Cliente>
<Id>500</Id>
<Nome>Marisa</Nome>
<Origem>Argentina</Origem>
</Cliente>
</ArrayOfCliente> |
Nosso objetivo é acessar e exibir o contéudo do arquivo em um controle ListView no Xamarin Forms.
Pois, bem , desafio aceito, vamos lá...
recursos usados:
Criando o projeto Xamarin Forms
Abra o VS 2017 Community e clique em New Project e a seguir escolha Cross Platform -> Mobile App (Xamarin.Forms) e informe o nome XF_ParseXML;
A seguir selecione a Plataforma (eu marquei somente Android) e escolha a estratégia de compartilhamento que será .NET Standard.
![]() |
Clique no botão OK.
Pronto, nosso projeto já esta criado.
Criando o arquivo XML e a classe Cliente
Vamos criar uma pasta chamada Recursos no projeto compartilhado e nesta pasta criar o arquivo XML Clientes.xml com o conteúdo já exibido no início do arquivo.
O detalhe é que precisamos alterar a propriedade Build Action do arquivo para Embedded resource.
Agora vamos criar uma pasta Model no projeto compartilhado e nesta pasta criar a classe Cliente que vai representar um cliente:
public class Cliente
{
public int Id { get; set; }
public string Nome { get; set; }
public string Origem { get; set; }
public Cliente()
{}
}
}
|
Criando a interface com o usuário no arquivo MainPage
Abra o arquivo MainPage.xaml e incluia o código abaixo que define um ListView para exibir os dados dos clientes:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XF_ParseXML"
x:Class="XF_ParseXML.MainPage">
<ListView x:Name="lvClientes" HasUnevenRows="true" BackgroundColor="White">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Nome}" Detail="{Binding Origem}" TextColor="Black" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
|
No código estamos usando um ItemTemplate definindo um DataTemplate do tipo TextCell e exibindo o nome a origem do cliente.
No arquivo code-behind MainPage.xaml.cs inclua o código a seguir:
using System.Collections.ObjectModel;
using System.IO;
using System.Reflection;
using System.Xml.Serialization;
using Xamarin.Forms;
using XF_ParseXML.Model;
namespace XF_ParseXML
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
var assembly = typeof(MainPage).GetTypeInfo().Assembly;
Stream stream = assembly.GetManifestResourceStream("XF_ParseXML.Recursos.Clientes.xml");
ObservableCollection<Cliente> ClientesInfo;
var serializer = new XmlSerializer(typeof(ObservableCollection<Cliente>));
ClientesInfo = (ObservableCollection<Cliente>)serializer.Deserialize(stream);
lvClientes.ItemsSource = ClientesInfo;
}
}
}
|
Neste código acessamos o arquivo Clientes.xml da pasta Recursos e deserializamos as informações objetos do tipo Cliente atribuindo à propriedade ItemsSource do ListView.
O método GetManifestResourceStream carrega o recurso (o XML) de manifesto especificado desse assembly.
E a classe XmlSerializer permite serializar e desserializar objetos de e para documentos XML.
Executando o projeto iremos obter o seguinte resultado:
![]() |
Assim, conseguimos acessar o arquivo XML e exibir os dados no Xamarin Forms.
Pegue o código
do projeto compartilhado aqui :
XF_ParseXML.zip
(disse
Jesus) - "E a vida eterna é esta: que te conheçam, a ti só, por único Deus
verdadeiro, e a Jesus Cristo, a quem enviaste."
João 17:3
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a
Objetos com VB .NET
Xamarim - Desenvolvimento Multiplataforma com C# ... - Macoratti.net
Xamarin.Forms - Olá Mundo - Criando sua primeira ... - Macoratti.net
Xamarin.Forms - Olá Mundo - Anatomia da aplicação - Macoratti.net
NET - Apresentando o padrão Model-View-ViewModel - Macoratti.net
Xamarin Forms - MVVM - Macoratti.net
NET - O padrão MVVM (Model-View-ViewModel) revisitado - Macoratti
Xamarin Forms - MVVM - A interface ICommand - Macoratti.net
Padrão de Projeto - Aprendendo o padrão MVVM ... - Macoratti.net