Hoje vou mostrar dois exemplos de como ler um arquivo XML em C# - ASP.NET.
No primeiro exemplo vou utilizar XmlTextReader para ler o arquivo XML e no outro XmlDocument.
Se quiser, também pode ver outros artigos sobre o assunto clicando aqui.
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>
Como ler XML com XmlTextReader:
using System.Xml;
...
//Server.MapPath - serve para pegar o caminho completo no sistema.
//Server.MapPath("~/contatos.xml") = c:\inetpub\wwwroot\site\contatos.xml
string sCaminhoDoArquivo = Server.MapPath("~/contatos.xml");
//Lendo XML com XmlTextReader
using (XmlTextReader xml = new XmlTextReader(sCaminhoDoArquivo))
{
while (xml.Read())
{
if (xml.NodeType == XmlNodeType.Text)
Response.Write(xml.Value + "<br />");
}
}
Resultado:
Exemplo 1
[email protected]
Exemplo 2
[email protected]
Como usar XmlDocument para ler arquivos XML
//Server.MapPath - serve para pegar o caminho completo no sistema.
//Server.MapPath("~/contatos.xml") = c:\inetpub\wwwroot\site\contatos.xml
string sCaminhoDoArquivo = Server.MapPath("~/contatos.xml");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(sCaminhoDoArquivo); //Carregando o arquivo
//Pegando elemento pelo nome da TAG
XmlNodeList xnList = xmlDoc.GetElementsByTagName("contato");
//Usando for para imprimir na tela
for (int i = 0; i < xnList.Count; i++)
{
string sNome = xnList[i]["nome"].InnerText;
string sEmail = xnList[i]["email"].InnerText;
Response.Write("Nome: " + sNome + " Email: " + sEmail + "<br />");
}
//Usando foreach para imprimir na tela
foreach (XmlNode xn in xnList)
{
string sNome = xn["nome"].InnerText;
string sEmail = xn["email"].InnerText;
Response.Write("Nome: " + sNome + " Email: " + sEmail + "<br />");
}
Tanto usando foreach com o for, obtemos o mesmo resultado:
Nome: Exemplo 1 Email: [email protected]
Nome: Exemplo 2 Email: [email protected]