将数据集保存为XML可以覆盖生成的标记名称以获得更小的XML

本文关键字:XML 保存 数据集 覆盖 | 更新日期: 2023-09-27 18:08:49

所以我将数据集保存到应用程序中的xml文件中,其中生成较小的文件很重要。现在它只是将XML元素保存为数据集表和字段的名称。我想知道是否有一种方法可以轻松地将这些标签保存为默认数据集名称以外的东西,并使用相同的名称将它们加载回来。

例如,现在我要这样做来保存数据集

XmlTextWriter xml = new XmlTextWriter("myfile.xml", Encoding.UTF8) { Formatting = Formatting.None };
myDataset.WriteXml(xml);

,它将生成长XML,看起来像这样…

<MYDataSet xmlns="http://tempuri.org/MYDataSet.xsd">
<MyElement><ReallyLongTagNames>other info and tags</ReallyLongTagNames></MyElement>
...
</MyDataSet>

我希望能够保存和加载看起来更像这样的东西来节省空间,但我找不到一个好的方法来做到这一点。好的意思是保持我的数据集不神秘,但仍然能够像这样加载和保存XML。

<MYDataSet xmlns="http://tempuri.org/MYDataSet.xsd">
<a><b>other info and tags</b></a>
...
</MyDataSet>

在保存数据集时,是否有一种好方法可以让xml以这种方式打印出来?

将数据集保存为XML可以覆盖生成的标记名称以获得更小的XML

如何在导出到XML之前重命名DataSet中的列?

如果文件大小很重要,则使用二进制格式化器。这将大大减小尺寸。

            string path = @"D:'myfile.dat";
            BinaryFormatter bf = new BinaryFormatter();
            mydataset.RemotingFormat = SerializationFormat.Binary;                
            using (StreamWriter sw = new StreamWriter(path))
            {
                bf.Serialize(sw.BaseStream, mydataset);
            }