Ler arquivo XML com C#

664 views
Skip to first unread message

vinicius perroni

unread,
Jul 14, 2010, 1:34:47 PM7/14/10
to dotn...@googlegroups.com
Boa tarda pessoal.

Gostaria de saber como faço para ler um arquivo xml com a seguinte formatação:

<IFX>
 <Carros>
    <Veiculo numero = "1">
      <placa>IDC2023</placa>
      <ano>2000</ano>
    </Veiculo>
    <Veiculo numero = "2">
      <placa>HJL8479</placa>
      <ano>2010</ano>
    </Veiculo>
  </Carros>
  <Caminhoes>
    <Veiculo numero = "1">
      <placa>POI0978</placa>
      <ano>2005</ano>
    </Veiculo>
  </Caminhoes>
</IFX>

Pesquisei alguns artigos porem não tive sucesso em percorrer o nó que desejo.
Por exemplo quero retornar um veículo que não é caminhão.
Os exemplos que encontrei retornam todos os veículos como sendo cada um uma linha sem deixar percorrer apenas os caminhões.

Alguém já percorreu um arquivo XML parecido com este? Como?




Att
Vinicius Perroni

Bruno Gross

unread,
Jul 14, 2010, 1:36:40 PM7/14/10
to dotn...@googlegroups.com
ja pesquisou ler via ADO?

2010/7/14 vinicius perroni <vinic...@gmail.com>
--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."
 
==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com



--
Visite: www.UpaLele.com

att.
Bruno Gross
Celular: (21) 78545483
Rádio ID: 83*39379

vinicius perroni

unread,
Jul 14, 2010, 1:41:38 PM7/14/10
to dotn...@googlegroups.com
Você fala em fazer assim:

DataSet ds = new DataSet();

ds.ReadXml("/TesteXML/DYI5587.XML");

var teste = ds.Tables["Caminhoes"].Rows[0].ItemArray[0].ToString();

?
Vinicius Perroni

Bruno Gross

unread,
Jul 14, 2010, 1:46:40 PM7/14/10
to dotn...@googlegroups.com
isso
 
no dataset vc pode filtrar como quiser

2010/7/14 vinicius perroni <vinic...@gmail.com>

Juan Pedro A. Lopes

unread,
Jul 14, 2010, 1:50:08 PM7/14/10
to dotn...@googlegroups.com
DataSet? Meu deus. Pq não criar os objetos pra desserializar esse xml? Algo como

class Veiculo 
{
    [XmlAttribute("numero")]
    public int Numero { get; set;}
    
    [XmlElement("placa")]
    public string Placa { get; set; }

}

2010/7/14 Bruno Gross <bruno...@gmail.com>



--
Kind regards,
Juan Lopes

http://qrcode.juanlopes.net

vinicius perroni

unread,
Jul 14, 2010, 1:53:23 PM7/14/10
to dotn...@googlegroups.com
Bruno
Seria muito te pedir um exemplo?

Não sei manipular muito bem estes objetos vim do php.

Juan esta foi a minha primeira opção porem o XML é um pouco mais complicado do que o do exemplo e projeto já importa outros tipos de arquivos bom não posso mexer nesta classe.

Bruno Gross

unread,
Jul 14, 2010, 1:55:25 PM7/14/10
to dotn...@googlegroups.com
Ao menos é funcional da forma que ele precisa

2010/7/14 Juan Pedro A. Lopes <juanp...@gmail.com>

Juan Pedro A. Lopes

unread,
Jul 14, 2010, 1:55:08 PM7/14/10
to dotn...@googlegroups.com
A falta de vírgulas impediu que eu entendesse o seu motivo.

Mas, no pior dos casos, você pode usar XPath.

2010/7/14 vinicius perroni <vinic...@gmail.com>



--

Bernardo Rezende

unread,
Jul 14, 2010, 1:59:35 PM7/14/10
to dotn...@googlegroups.com
Fala Vinicius, beleza?


Se você está usando .NET 3.5 e seu XML tende a não ficar complexo e com encodings complicados, sugiro facilitar com o Linq to XML, dá uma olhada aí:

http://codepaste.net/xcubbw

OBS: Ajeite para o path do XML da tua máquina

--
Bernardo Bosak de Rezende
http://bernardorezende.wordpress.com/ - Arquitetura e Desenvolvimento .NET

"The weather-cock on the church spire, though made of iron, would soon be broken by the storm-wind if it did not understand the noble art of turning to every wind."
Heinrich Heine

vinicius perroni

unread,
Jul 14, 2010, 2:02:59 PM7/14/10
to dotn...@googlegroups.com
Mas tchê  muito boa tinha me esquecido boa oportunidade para começar a aprender Linq.

Obrigado vou tentar.

2010/7/14 Bernardo Rezende <bernard...@gmail.com>

--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."
 
==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com



--
Vinicius Perroni

Bernardo Rezende

unread,
Jul 14, 2010, 2:04:22 PM7/14/10
to dotn...@googlegroups.com
Haha bah pior que hoje ta frio aqui no sul mesmo

Mas como já foi dito acima (acho que o Juan citou), XPath pode ser um bom caminho se o XML tomar proporções grandes.

Que vocês acham?

Bruno de Toledo

unread,
Jul 14, 2010, 2:09:50 PM7/14/10
to dotn...@googlegroups.com
Bom... eu usaria Linq to Xml...

simples como

var res = from e in XDocument.Load("path").Elements("IFX").Elements("Carro")
               select e.Attribute("numero");

bem intuitivo...

Bruno de Toledo
Analista Desenvolvedor .Net
Fone: 11 9191-5773


2010/7/14 Bernardo Rezende <bernard...@gmail.com>
Haha bah pior que hoje ta frio aqui no sul mesmo

Mas como já foi dito acima (acho que o Juan citou), XPath pode ser um bom caminho se o XML tomar proporções grandes.

Que vocês acham?

Juan Pedro A. Lopes

unread,
Jul 14, 2010, 2:12:42 PM7/14/10
to dotn...@googlegroups.com
Usando XmlSerializer (vantagem de ser fortemente tipado)

Usando XPath

Mas DataSet não! DataSets are evil.

2010/7/14 Bernardo Rezende <bernard...@gmail.com>
Haha bah pior que hoje ta frio aqui no sul mesmo

Mas como já foi dito acima (acho que o Juan citou), XPath pode ser um bom caminho se o XML tomar proporções grandes.

Que vocês acham?

--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."
 
==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com



--

Juliano Oliveira

unread,
Jul 14, 2010, 5:57:29 PM7/14/10
to dotn...@googlegroups.com
Caramba, demorou para citarem algo sobre Linq to XML.

Se puder, use. É muito bom!

[]´s

Juliano Oliveira
Analista Desenvolvedor
twitter: @juloliveira - skype: juloliveira

vinicius perroni

unread,
Jul 15, 2010, 8:32:10 AM7/15/10
to dotn...@googlegroups.com
Escrevo para agradecer a ajuda te todos testei as duas soluções (Linq e XPath) ambas são eficientes.

Agora uma pergunta sobre linq, vi um programa para treinar querys de linq algo simples vinha uns exemplos e alguns xmls 

Vocês conhecem algo parecido?
Eu já não lembro mais o nome do programa que usava. 
Vinicius Perroni

rodrigo

unread,
Jul 15, 2010, 8:33:46 AM7/15/10
to dotn...@googlegroups.com
http://www.linqpad.net/

Pode ser esse...

2010/7/15 vinicius perroni <vinic...@gmail.com>:

--
Att.,
Rodrigo Braga

Alex GMAIL

unread,
Jul 15, 2010, 9:38:39 AM7/15/10
to dotn...@googlegroups.com
Ol� Juan,

Fiquei curioso, por que voc� acha que DataSets s�o "evil"?


Em 14/07/2010 15:12, Juan Pedro A. Lopes escreveu:
> Usando XmlSerializer (vantagem de ser fortemente tipado)
> http://pastie.org/1044397
>
> <http://pastie.org/1044397>Usando XPath
> http://pastie.org/1044403
>

> <http://pastie.org/1044403>Mas DataSet n�o! DataSets are evil.
>
> 2010/7/14 Bernardo Rezende <bernard...@gmail.com
> <mailto:bernard...@gmail.com>>


>
> Haha bah pior que hoje ta frio aqui no sul mesmo
>

> Mas como j� foi dito acima (acho que o Juan citou), XPath pode ser
> um bom caminho se o XML tomar propor��es grandes.
>
> Que voc�s acham?


>
> --
> ==============================
> Comunidade de desenvolvedores Dot Net no Brasil
> ".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
> E-mail do Grupo: dotn...@googlegroups.com

> <mailto:dotn...@googlegroups.com>


> "Your Potential. Our Passion."
>
> ==============================
> Comunidade de desenvolvedores PHP
> "LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
> E-mail do Grupo: list...@googlegroups.com

> <mailto:list...@googlegroups.com>
>
>
>
>
> --
> Kind regards,
> *Juan Lopes*
>
> http://qrcode.juanlopes.net

Bruno de Toledo

unread,
Jul 15, 2010, 10:17:48 AM7/15/10
to dotn...@googlegroups.com

Dataset nao sao evils, o que acontece eh que quase sempre da pra trabalhar com outro objeto "menor" e de uma maneira mais rapida. Cada caso eh um caso.

Em 15/07/2010 10:38, "Alex GMAIL" <alexdb...@gmail.com> escreveu:
> Olá Juan,
>
> Fiquei curioso, por que você acha que DataSets são "evil"?


>
>
> Em 14/07/2010 15:12, Juan Pedro A. Lopes escreveu:
>> Usando XmlSerializer (vantagem de ser fortemente tipado)
>> http://pastie.org/1044397
>>
>> <http://pastie.org/1044397>Usando XPath
>> http://pastie.org/1044403
>>

>> <http://pastie.org/1044403>Mas DataSet não! DataSets are evil.


>>
>> 2010/7/14 Bernardo Rezende <bernard...@gmail.com
>> <mailto:bernard...@gmail.com>>
>>
>> Haha bah pior que hoje ta frio aqui no sul mesmo
>>

>> Mas como já foi dito acima (acho que o Juan citou), XPath pode ser
>> um bom caminho se o XML tomar proporções grandes.
>>
>> Que vocês acham?

Juan Pedro A. Lopes

unread,
Jul 15, 2010, 10:34:19 AM7/15/10
to dotn...@googlegroups.com
DataSets são evil porque jogam no lixo a orientação a objetos.

2010/7/15 Bruno de Toledo <btol...@gmail.com>



--

Bruno de Toledo

unread,
Jul 15, 2010, 10:35:45 AM7/15/10
to dotn...@googlegroups.com

Nossa como assim...

Alex GMAIL

unread,
Jul 15, 2010, 10:36:08 AM7/15/10
to dotn...@googlegroups.com
Entendi.


Em 15/07/2010 11:17, Bruno de Toledo escreveu:
> Dataset nao sao evils, o que acontece eh que quase sempre da pra
> trabalhar com outro objeto "menor" e de uma maneira mais rapida. Cada
> caso eh um caso.
>
> Em 15/07/2010 10:38, "Alex GMAIL" <alexdb...@gmail.com

> <mailto:alexdb...@gmail.com>> escreveu:
> > Ol� Juan,
> >
> > Fiquei curioso, por que voc� acha que DataSets s�o "evil"?


> >
> >
> > Em 14/07/2010 15:12, Juan Pedro A. Lopes escreveu:
> >> Usando XmlSerializer (vantagem de ser fortemente tipado)
> >> http://pastie.org/1044397
> >>
> >> <http://pastie.org/1044397>Usando XPath
> >> http://pastie.org/1044403
> >>

> >> <http://pastie.org/1044403>Mas DataSet n�o! DataSets are evil.


> >>
> >> 2010/7/14 Bernardo Rezende <bernard...@gmail.com
> <mailto:bernard...@gmail.com>

> >> <mailto:bernard...@gmail.com <mailto:bernard...@gmail.com>>>


> >>
> >> Haha bah pior que hoje ta frio aqui no sul mesmo
> >>

> >> Mas como j� foi dito acima (acho que o Juan citou), XPath pode ser
> >> um bom caminho se o XML tomar propor��es grandes.
> >>

> >> Que voc�s acham?


> >>
> >> --
> >> ==============================
> >> Comunidade de desenvolvedores Dot Net no Brasil
> >> ".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
> >> E-mail do Grupo: dotn...@googlegroups.com
> <mailto:dotn...@googlegroups.com>

> >> <mailto:dotn...@googlegroups.com <mailto:dotn...@googlegroups.com>>


> >> "Your Potential. Our Passion."
> >>
> >> ==============================
> >> Comunidade de desenvolvedores PHP
> >> "LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
> >> E-mail do Grupo: list...@googlegroups.com
> <mailto:list...@googlegroups.com>

> >> <mailto:list...@googlegroups.com <mailto:list...@googlegroups.com>>

Willian Zacariotto

unread,
Jul 15, 2010, 10:37:26 AM7/15/10
to dotn...@googlegroups.com

DataSets tipados também são evils?

Juan Pedro A. Lopes

unread,
Jul 15, 2010, 10:52:33 AM7/15/10
to dotn...@googlegroups.com
A única diferença é que o Visual Studio gera o código pra você.

Se você fala de ler um XML com eles, é um canhão pra matar uma mosca que pode ser morta com um approach bem mais fácil, limpo e orientado a objetos.

Se você fala de mapear seu banco com eles, é um approach sujo, dependente de tecnologia e lento. Até Linq2SQL vale mais a pena do que isso, apesar de eu acreditar que é mais vantagem usar um ORM.

2010/7/15 Willian Zacariotto <wil...@gmail.com>



--
Kind regards,
Juan Lopes

http://qrcode.juanlopes.net

Willian Zacariotto

unread,
Jul 15, 2010, 2:19:03 PM7/15/10
to dotn...@googlegroups.com

Galera em pouco tempo vou começar a desenvolver uma loja virtual usando C#, gostaria de saber o que seria melhor para eu desenvolver.

 

- Usar o VS 2010 criando uma Web Application ou Web Site ;

 

Ou

 

- Usar o Web Developer para criar um Web Site.

 

 

Obs.: já desenvolvi sites 100% em flash e PHP, porém sou iniciante em ASP.net, gostaria de alguns sites onde eu possa buscar boas referencias tais como: carrinho de compras e carteira eletrônica;

Juan Pedro A. Lopes

unread,
Jul 15, 2010, 2:23:16 PM7/15/10
to dotn...@googlegroups.com
Eu aconselho estudar muito sobre o .NET

Existem muitas outras decisões mais importantes do que essa a serem tomadas. A mudança de paradigma pro PHP é muito grande.

2010/7/15 Willian Zacariotto <wil...@gmail.com>
--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."
 
==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com

Bruno Gross

unread,
Jul 15, 2010, 2:23:26 PM7/15/10
to dotn...@googlegroups.com
vc tem uma licença do vs? use-o
 
senão, use o web developer
 
 
se vc tem uma submetralhadora, pra que usar um 22 pra matar o passarinho?

2010/7/15 Willian Zacariotto <wil...@gmail.com>
--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."
 
==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com



--

Bernardo Rosmaninho

unread,
Jul 15, 2010, 2:26:42 PM7/15/10
to dotn...@googlegroups.com
Como o Bruno disse anteriormente, se vc tem $$$$$ para comprar a licença do VS, certamente é a melhor opção!
Caso contrário o WebDeveloper tbm é muito bom e free! Mas vc tbm tem o Webmatrix que pode facilitar ainda mais sua vida com as apps prontas custumizáveis!
[]'s

2010/7/15 Bruno Gross <bruno...@gmail.com>



--
Bernardo Rosmaninho


Bruno de Toledo

unread,
Jul 15, 2010, 2:28:31 PM7/15/10
to dotn...@googlegroups.com
Respondendo a outra pergunta:

Web Site seria como uma pasta virtual do IIS. Tudo o que estiver lá faz parte do seu site. Outra coisa é que ao buildar, ele gera várias DLLs com nomes doidos e cada vez que vc builda de novo essas DLLs mudam.

Web Application seria uma aplicação como outra qualquer. Gera somente um DLL, como uma Class Library. Você pode escolher o que faz e o que não faz parte do seu web site.

Bruno de Toledo
Analista Desenvolvedor .Net
Fone: 11 9191-5773


2010/7/15 Bernardo Rosmaninho <bernardo....@gmail.com>

Willian Zacariotto

unread,
Jul 15, 2010, 2:34:15 PM7/15/10
to dotn...@googlegroups.com

Desculpe, tenho um cd que ganhei no SENAC do VS 2008 e não 2010, e este não pede serial na hora de instalar.

 

Obrigado pelos esclarecimentos já sei por onde começar, vou fazer uma Web Application J!!

 

Agora vou pesquisar sobre carrinho de compras ! (e uma pesquisa longa heheheh)

 

De: dotn...@googlegroups.com [mailto:dotn...@googlegroups.com] Em nome de Bruno de Toledo


Enviada em: quinta-feira, 15 de julho de 2010 15:29
Para: dotn...@googlegroups.com

Bruno de Toledo

unread,
Jul 15, 2010, 2:37:24 PM7/15/10
to dotn...@googlegroups.com
Willian,

Neste exato momento estou desenvolvendo também um E-Commerce. Ficaria feliz em lhe ajudar.

Abs
Bruno de Toledo
Analista Desenvolvedor .Net
Fone: 11 9191-5773


2010/7/15 Willian Zacariotto <wil...@gmail.com>

Willian Zacariotto

unread,
Jul 15, 2010, 2:55:42 PM7/15/10
to dotn...@googlegroups.com

Achei um exemplo de carrinho de compras no site da Dev Media

 

http://www.devmedia.com.br/post-4095-Crie-um-carrinho-de-compras-em-ASP-NET-Parte-I.html

 

alguém já deu uma olhada?

Reply all
Reply to author
Forward
0 new messages