Ler XML com DataSet é muito simples, basta usar o ReadXml do DataSet. Similar ao WriteXml que passa o DataSet para XML. Feito isso vamos ver como ler os campos do XML com o DataSet, ou seja, pegar as linhas e colunas.
Vamos ver no exemplo abaixo o que fazer depois de popular o DataSet com os dados do XML.
Exemplo simples de XML:
<?xml version="1.0" encoding="utf-8"?>
<contatos>
<contato>
<nome>Exemplo 1</nome>
<email>[email protected]</email>
</contato>
<contato>
<nome>Exemplo 2</nome>
<email>[email protected]</email>
</contato>
</contatos>
Código para carregar o arquivo XML no DataSet
using System.Data;
...
//Server.MapPath - serve para pegar o caminho completo no sistema.
//Server.MapPath("~/contatos.xml") = c:\inetpub\wwwroot\site\contatos.xml
string sFile = Server.MapPath("~/contatos.xml");
//Criar o DataSet
DataSet ds = new DataSet();
//Carregar os dados do XML
ds.ReadXml(sFile);
//Imprimir na página os dados do XML
for (int i = 0; i < ds.Tables["contato"].Rows.Count; i++)
{
string sName = ds.Tables["contato"].Rows[i]["nome"].ToString();
string sEmail = ds.Tables["contato"].Rows[i]["email"].ToString();
Response.Write("Nome: " + sName + " e-mail: " + sEmail + "<br />");
}
Resultado:
Nome: Exemplo 1 e-mail: [email protected]
Nome: Exemplo 2 e-mail: [email protected]