por Cesar Cassiano Schimanco

Ler arquivo XML usando XmlTextReader e XmlDocument em C# - ASP.NET

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]

Comentários

Carregando comentários

Postar um novo comentário



Processando...