Como manter espaços em branco em um arquivo XML com C#

Quando é necessário exibir ou salvar um arquivo XML com C#, o arquivo pode ser carregado totalmente formatado mais quando salva a formatação fica totalmente desconfigurada, assim ficando quase impossível identificar possíveis problemas em arquivos grandes.

Para manter essa formação com os espaços já definidos existe uma propriedade na classe XmlDocument para manter essas informações quando salvar a propriedade se chama PreserveWhitespace quando definido para false o arquivo mantem os espaços do arquivo existente, mais por padrão ela é definida como true.

Código exemplificando o que ocorre para uma aplicação console básica.


XmlDocument xmlDocument = new XmlDocument();
 xmlDocument.LoadXml(
 @"<teste>
 <a> teste </a>
 <b> </b>
 <c></c>
 <d> </d>
 </teste>");
 Console.WriteLine("Exemplo com PreserveWhitespace = false");
 xmlDocument.PreserveWhitespace = false;
 xmlDocument.Save(Console.Out);
 Console.WriteLine("");
 Console.WriteLine("");

Console.WriteLine("Exemplo com PreserveWhitespace = true");

xmlDocument.PreserveWhitespace = true;

 xmlDocument.Save(Console.Out);

Console.ReadKey();

Anúncios

Tamanho por tabela no Oracle

É muito importante em alguns casos ter o tamanho das tabelas individualmente para saber como estão crescendo as tabelas de um banco, assim tendo uma visão melhor para a administração do mesmo.

Segue um script para conseguir essa informação

</pre>
SELECT
 table_name,
 DECODE(partitioned,'/','NO',partitioned) partitioned,
 qtd_linhas,
 data_mb,
 indx_mb,
 lob_mb,
 total_mb
 FROM
 (SELECT
 DATA.table_name,
 partitioning_type || DECODE (subpartitioning_type,'none', null, '/' || subpartitioning_type)
 partitioned,
 qtd_linhas,
 NVL(data_mb,0) data_mb,
 NVL(indx_mb,0) indx_mb,
 NVL(lob_mb,0) lob_mb,
 NVL(data_mb,0) + NVL(indx_mb,0) + NVL(lob_mb,0) total_mb
 FROM
 (SELECT
 table_name,
 NVL(MIN(qtd_linhas),0) qtd_linhas,
 ROUND(SUM(data_mb),2) data_mb
 FROM
 (SELECT
 table_name,
 qtd_linhas,
 data_mb
 FROM
 (SELECT
 a.table_name,
 a.num_rows as qtd_linhas,
 b.bytes/1024/1024 AS data_mb
 FROM
 user_tables a,
 user_segments b
 WHERE
 a.table_name = b.segment_name))
 GROUP BY table_name) DATA,
 (SELECT
 a.table_name,
 ROUND(SUM(b.bytes/1024/1024),2) AS indx_mb
 FROM
 user_indexes a, user_segments b
 WHERE
 a.index_name = b.segment_name
 GROUP BY a.table_name) indx,
 (SELECT
 a.table_name,
 ROUND(SUM(b.bytes/1024/1024),2) AS lob_mb
 FROM
 user_lobs a, user_segments b
 WHERE
 a.segment_name = b.segment_name
 GROUP BY a.table_name) lob,
 user_part_tables part
 WHERE
 DATA.table_name = indx.table_name(+) AND
 DATA.table_name = lob.table_name(+) AND
 DATA.table_name = part.table_name(+))
 ORDER BY
 table_name;
<pre>