如何在c#中以编程方式减小xml文件的大小

Ale*_*lex 2 c# xml size

我有一个xml文件,它有110KB我在这里上传了它

在Notepad ++中,我使用的是XML Tools插件和漂亮(Ctrl+Alt+Shift+B)的代码排列打印,如下图所示 在此输入图像描述

我还有另一个Notepad ++插件,"TextFX",我正在选择所有文本(Ctrl+A)并使用Unwrap Text,如下图所示 在此输入图像描述

执行这些操作后,我正在保存我的xml文件,它有100KB(在此处上传).如何在c#中以编程方式执行此操作?

提前致谢!

ole*_*ksa 5

您是否在询问如何删除xml文档中的所有空格字符?请将其加载到XmlDocument并从OuterXml中读取.您将获得一行xml文档

var d = new Data();
var s = new XmlSerializer(d.GetType());
var sb = new StringBuilder();
var strStream = new StringWriter(sb);
s.Serialize(strStream, d);
Trace.WriteLine(sb.ToString());// formatted document

var xd = new XmlDocument();
xd.LoadXml(sb.ToString());
Trace.WriteLine(xd.OuterXml); // document without any surplus space character or linebreaks
Run Code Online (Sandbox Code Playgroud)

数据是我的自定义类,请在下面找到它.它不包含任何XML序列化控件属性.您可以使用任何类而不是它.

public class Data
{
    public string BIC;
    public string Addressee;
    public string AccountHolder;
    public string Name;
    public string CityHeading;
    public string NationalCode;
    public bool MainBIC;
    public string TypeOfChange;
    public DateTime validFrom;
    public DateTime validTill;
    public int ParticipationType;
    public string Title { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

第一个跟踪产生格式良好的XML

<?xml version="1.0" encoding="utf-16"?>
<Data xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <MainBIC>false</MainBIC>
  <validFrom>0001-01-01T00:00:00</validFrom>
  <validTill>0001-01-01T00:00:00</validTill>
  <ParticipationType>0</ParticipationType>
</Data>
Run Code Online (Sandbox Code Playgroud)

和第二个跟踪输出是单行:

<?xml version="1.0" encoding="utf-16"?><Data xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><MainBIC>false</MainBIC><validFrom>0001-01-01T00:00:00</validFrom><validTill>0001-01-01T00:00:00</validTill><ParticipationType>0</ParticipationType></Data>
Run Code Online (Sandbox Code Playgroud)