Lendo XML - maneira mais simples

<< Click to Display Table of Contents >>

Navigation:  XML >

Lendo XML - maneira mais simples

Previous pageReturn to chapter overviewNext page

Arquivo XML
 
<testnode>
  <element1>Element1 Text</element1>
  <element2>Element2 Text</element2>
  <element3>Element3 Text</element3>
  <element4>Element4 Text</element4>
  <element5>Element5 Text</element5>
</testnode>
 
 
Programa
 
string filename = "test.xml";
 
XmlTextReader tr = new XmlTextReader(filename);
 
while(tr.Read())
{
    if(tr.NodeType == XmlNodeType.Text)
        System.Console.WriteLine(tr.Value);
}
 
Saída
 
Element1 Text
Element2 Text
Element3 Text
Element4 Text
Element5 Text

 

Outra maneira bem simples

 

Arquivo2.xml - Atenção a opção encoding é a que permite acentos no XML

 

<?xml version="1.0" encoding="ISO-8859-1" ?> 

<Arquivos>

 

  <registro>

    <nome>Market Gestor</nome>

    <versao>0.99</versao>

   <arquivo>Gestor.pdf</arquivo>

   <obs>Teste de observação</obs>

  </registro>

 

  <registro>

    <nome>Market Frente (PAF-ECF)</nome>

    <versao>7.14</versao>

   <arquivo>PAF.pdf</arquivo>

   <obs>Teste de observação 2</obs>

  </registro>

 

</Arquivos>

 

Fonte

 

using System;

using System.Data;

using System.IO;

using System.Reflection;

 

namespace ConsoleApplication2

{

  class Program

   {

      public static DataTable LerXML(string arquivo)

       {

          DataSet dsStore = new DataSet();

           dsStore.ReadXml(arquivo);

          return dsStore.Tables["registro"];

       }

 

      static void Main(string[] args)

       {

          string xml = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + Path.DirectorySeparatorChar + "arquivos2.xml";

          DataTable dts = LerXML(xml);

 

          Console.WriteLine(dts.Rows.Count);

          DataRow linha;

 

          for (int i = 0; i < dts.Rows.Count; i++)

           {

               linha = dts.Rows[i];

              Console.WriteLine(linha["nome"].ToString());

              Console.WriteLine(linha["versao"].ToString());

              Console.WriteLine(linha["arquivo"].ToString());

              Console.WriteLine(linha["obs"].ToString());

           }

 

          Console.ReadLine();

       }

   }

}

 

Saída

 

2

Market Gestor

0.99

Gestor.pdf

Teste de observação

Market Frente (PAF-ECF)

7.14

PAF.pdf

Teste de observação 2