A gravação de arquivos XML é bastante simplifIcada no ambiente .NET graças ao namespace System.Xml.
Uma das classes que provê várias opções para formatação do documento é XmlWriter.
Com esta classe você pode criar seu documento e gravar no disco como no código demonstrado abaixo:
Listagem 1 – Gravando um documentousing System;
using System.Xml;
public class Program
{
public static void Main(string[] args)
{
// cria o documento
XmlDocument xmlDoc = new XmlDocument();
// carrega o conteúdo
xmlDoc.LoadXml(@"<xml>
<disco>
<titulo>Brothers in Arms</titulo>
<artista>Dire Straits</artista>
<ano>1982</ano>
</disco>
</xml>");
// cria o XmlWriter
XmlWriter oXmlWriter =
XmlWriter.Create(@"d:\discos.xml");
// grava o arquivo e fecha
xmlDoc.Save(oXmlWriter);
oXmlWriter.Flush();
oXmlWriter.Close();
}
}
Mas, existem casos em que precisamos otimizar este processo de gravação do documento XML.
Um exemplo é quando por motivos de economia do consumo de banda de uma rede precisamos remover todos os espaços em branco e quebras de linha do documento e precisamos envia-lo somente com seu conteúdo.
Neste caso, além do XmlWriter, devemos agregar a este um XmlWriterSettings.
Verifique as propriedades “Indent”, “IndentChars”, “NewLineChars” para poder controlar os espaços em branco e quebras de linha do documento Xml.
A forma de usar é basicamente a seguinte:
- Crie uma instância de XmlWriterSettings.
- Configure as propriedades como desejado.
- Crie uma nova instância de XmlWriter passando no construtor o nome do arquivo e o objeto XmlWriterSettings.
- Faça as operações com seu documento Xml.
Abaixo segue um exemplo do que foi exposto acima.
Listagem 2 – Exemplo de XmlWriterSettingsusing System;
using System.Xml;
public class Program
{
public static void Main(string[] args)
{
// cria o documento
XmlDocument xmlDoc = new XmlDocument();
// carrega o conteúdo
xmlDoc.LoadXml(@"<xml>
<disco>
<titulo>Brothers in Arms</titulo>
<artista>Dire Straits</artista>
<ano>1982</ano>
</disco>
</xml>");
// cria o XmlWriterSettings
XmlWriterSettings xmlSetting =
new XmlWriterSettings();
xmlSetting.NewLineChars = "";
xmlSetting.NewLineOnAttributes = false;
// cria o XmlWriter
XmlWriter oXmlWriter =
XmlWriter.Create(@"d:\discos.xml", xmlSetting);
// grava o arquivo e fecha
xmlDoc.Save(oXmlWriter);
oXmlWriter.Flush();
oXmlWriter.Close();
}
}
Fica aqui a dica: embora estes exemplos estejam em C#, deve ser fácil para você transformar isto em outra linguagem do framework .NET. Recentemente meu colega de trabalho Márcio Althmann (http://www.marcioaltmann.net) fez um comentário interessante:
“Pessoal uma vez um amigo disse, gaste 20% do seu tempo utilizando C#, e 80% do tempo estudando o .NET Framework, e é verdade, 99% do que precisa está no Framework, é só saber utilizar.”
Grande abraço e até a próxima.