Ir ao conteúdo

Posts recomendados

Postado

Opa, como vocês estão? Estou apreendendo C# por conta própria (depois de ser iniciado em programação em python na universidade).

Estou tentando criar 1 software que leia um arquivo XML e queria dividir o arquivo da mesma forma que a imagem a seguir.

22200549_SemTtulo-2.jpg.1b6f020f08e82cc2ddcd494ee9692737.jpg

No caso queria que "contasse" para cada nó maior "Customer". Para que futuramente caso eu queira imprimir o primeiro, segundo, terceiro. (Ficaria a escolha do usuário).

 

Bom estou tentando fazer isso usando "ArquivoXML".Descendent("Customer"). 

 

IEnumerable<XElement> items =
     from el in pu2.Descendants("Customer")  
     select el;
foreach (XElement el in items)
     {
      MessageBox.Show (el.ToString()); // No caso ele abre uma caixa mostrando todos o arquivo entre os Customer.
     }

 

A questão é que estou tentando de todos os jeito transformar/adquirir os valores da variável (XElement) em INT, so que não consigo :(.

Queria saber se estou usando o "IEnumerable" Corretamente, se deveria usar "List". Já pensei em transformar em texto e usar "ReadallLines" para pegar os arquivo em string. Porém acredito que exista uma forma melhor de fazer isso. 

 

Enfim quem puder me ajudar :) ou até poder falar um caminho, ou onde estou errando, enfim. 

Postado

Não sei se entendi o que você quer. Veja se o código abaixo te ajuda. 

Esse código usa LInq e Xml.Linq;

 

using System;
using System.Linq;
using System.Threading;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //le o xml
            XElement doc = XElement.Load(@"C:\Projects\Customers.xml");            
            
            //Separa os elementos do tipo Customer (dentro deles tem os filhos)
            var elemList = doc.Element("Customers").Elements("Customer");
            Console.WriteLine("Qtde Customer = " + elemList.Count().ToString());

            //cria um objeto de lista generica usando xml.Linq com os elementos separados
            var Elements = from c in elemList
            select new
            {
            CustomerID = (string)c.Attribute("CustomerID"),
            CompanyName = (string)c.Element("CompanyName"),
            Country = (string)c.Element("FullAddress").Element("Country")
            };

            //Agora esta fácil. É só listar os dados.
            foreach (var r in Elements)
                Console.WriteLine("CustomerID:{0} CompanyName:\"{1}\" Country:{2}", r.CustomerID, r.CompanyName, r.Country);
            Thread.Sleep(10000);

        }
    }
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!