Abaixo vamos demonstrar um exemplo simples para a manipulação do XML:
Primeiramente para usarmos a função temos que importar o namespace:
using System.Xml;
O próximo passo para manipularmos um documento XML é carregarmos ele em memória. Para isso podemos utilizar a classe XmlDocument.
EXEMPLO DE XML
<empresa>
<funcionario>
<id>10 </id>
<nome>Frederico da Silva </nome>
<idade>25 </idade>
<cargo>Gerente </cargo>
</funcionario>
</empresa>
Para carregar o Xml que está em um arquivo fisico "Artigo_XML.xml" utilizamos o método Load(arquivo.xml).
Criação do Arquivo xml:
string caminho = @"C:\Artigo_XML.xml";
if (!File.Exists(caminho))
{
XmlDocument doc = new XmlDocument();
XmlNode raiz = doc.CreateElement("empresa");
doc.AppendChild(raiz);
doc.Save(caminho);
}
Se o arquivo não existir ele cria o arquivo xml, sendo necessário a inserção de um elemento Root neste exemplo
representado pelo elemento "empresa".
Inserir Registro:
Depois de criado precisamos muitas vezes inserir as informações no arquivo xml já existente, com isso precisamos inserir novos elementos utilizando o Método AppendChild.
XmlDocument doc = new XmlDocument();
string caminho = @"C:\Artigo_XML.xml";
doc.Load(caminho);
XmlNode linha = doc.CreateElement("funcionario");
XmlNode Id = doc.CreateElement("id");
XmlNode Nome = doc.CreateElement("nome");
XmlNode Idade = doc.CreateElement("idade");
XmlNode Cargo = doc.CreateElement("cargo");
Id.InnerText = "11";
Nome.InnerText = "Mario da Silva";
Idade.InnerText = "35";
Cargo.InnerText = "Financeiro";
linha.AppendChild(Id);
linha.AppendChild(Nome);
linha.AppendChild(Idade);
linha.AppendChild(Cargo);
doc.SelectSingleNode("/empresa").AppendChild(linha);
doc.Save(caminho);
Alterar Registro:
Para a alteração de um elemento do xml podemos utilizar:
XmlDocument doc = new XmlDocument();
string caminho = @"C:\Artigo_XML.xml";
doc.Load(caminho);
XmlNode no;
no = doc.SelectSingleNode(String.Format("/empresa/funcionario[id={0}]", 10));
no.SelectSingleNode("./cargo").InnerText = "Gerente Administrativo";
doc.Save(caminho);
Altera as informações do Funcionário Frederico da Silva baseado no seu id.
Deletar Registro:
Para Deletar um elemento do xml baseado em uma condição podemos utilizar:
XmlDocument doc = new XmlDocument();
string caminho = @"C:\Artigo_XML.xml";
doc.Load(caminho);
foreach (XmlNode no in doc.DocumentElement.ChildNodes)
{
if (int.Parse(no.ChildNodes.Item(0).InnerText) == 10)
{
doc.DocumentElement.RemoveChild(no);
doc.Save(caminho);
return;
}
}
O item(0) representa a primeira coluna da tabela funcionário que está representado pelo nó "id",