|
<< Click to Display Table of Contents >> Lendo XML - maneira mais simples |
![]() ![]()
|
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