Duvida ler XML - Csharp

30/09/2015

0

Bom dia!

Alguém sabe me dizer como posso ler um arquivo XML e estar mantendo suas informações em variáveis. Tenho uma função com XmlTextReader mas ele apenas lê e printa na tela, gostaria de manter estas informações em variáveis para usa-las depois no meu projeto. Alguém sabe me ajudar?

Grato.
Iago Melo

Iago Melo

Responder

Posts

30/09/2015

Iago Melo

Estou tentando da seguinte forma:

try
            {
                int x = 0;

                FileStream dir = new FileStream(arquivo, FileMode.Open);

                // Abre um stream para a leitura do arquivo XML
                XmlTextReader leitor = new XmlTextReader(dir);
                
                while (leitor.Read())
                {
                    //verificacao do tipo de nó lido
                    switch (leitor.NodeType)
                    {
                        case XmlNodeType.Element: // O nó é um elemento.
                            Console.Write("<" + leitor.Name);
                            Console.WriteLine(">");
                            break;
                        case XmlNodeType.Text: // Exibir o texto em cada elemento.
                            Console.WriteLine(leitor.Value);
                            break;
                        case XmlNodeType.EndElement: // Mostrar a extremidade do elemento .
                            Console.Write("</" + leitor.Name);
                            Console.WriteLine(">");
                            break;
                    }
                    x++;
                    xml[x] = leitor.ToString().Replace("System.Xml.XmlTextReader", "");
                    XML += "\n" + xml[x];
                    
                }
                Console.WriteLine("\n\n" + XML);

                //fechamento do arquivo XML
                leitor.Close();

                Console.WriteLine("\n\nPress anny button to continue...");
                Console.ReadKey();
            }
            catch(Exception e)
            {
                Console.WriteLine("Erro: " + e.Message);
                Console.ReadKey();
            }


Porém desta maneira ele só imprime os "\n". Dentro do while mandei imprimir o "xml[x]" e ele esta gravando direitinho, o problema está no "XML += "\n" + xml[x]" só imprime o "\n".
Alguém sabe como posso fazer? Please
Responder

01/10/2015

Joel Rodrigues

Pesquise pelas classes do namespace System.Xml.Linq. A classe XDocument, por exemplo, lhe permite ler um documento XML e em conjunto com XAtribute e XElement tornam fácil a iteração sobre os elementos e atributos.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar