gpt4 book ai didi

c# - 如何不使用 C# DataSet 中的 pretty-print 来编写 XML

转载 作者:数据小太阳 更新时间:2023-10-29 01:44:17 26 4
gpt4 key购买 nike

在 C# 中,如何将 DataSet 写入文件而不使用 pretty-print ?

使用 C# 和 .NET 2.0,我一直在使用 dataSet.WriteXml(fileName, XmlWriteMode.IgnoreSchema),它在默认情况下使用 pretty-print 来编写 Xml 文件。使用我编写的 Xml 文件的公司建议,在没有 pretty-print 的情况下编写不会影响它们,并且会显着减小文件的大小。在 System.Xml namespace 中进行了一些尝试后,我确实找到了解决方案。但是,在我的搜索中,我没有在任何地方找到答案,所以我认为如果我发布这个问题,将来可能会对其他人有所帮助。此外,如果有更好的或至少不同的方法来实现这一点,我一点也不会感到惊讶。

对于那些不知道的人(我直到今天才知道),Xml“ pretty-print ”是:

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Foo>
<Bar>abc</Bar>
</Foo>
</NewDataSet>

如果没有 pretty-print ,它看起来像这样:

<?xml version="1.0" encoding="utf-8"?><NewDataSet><Foo><Bar>abc</Bar></Foo></NewDataSet>

此外,大小节省也很显着,70mb 的文件变成了大约 40mb。如果没有其他人,我会在今天晚些时候发布我的解决方案。

最佳答案

这很简单,您只需使用 XmlWriterSettingsIndent 属性设置为 false 来创建一个 XmlWriter:

// The memory stream for the backing.
using (MemoryStream ms = new MemoryStream())
{
// The settings for the XmlWriter.
XmlWriterSettings settings = new XmlWriterSettings();

// Do not indent.
settings.Indent = false;

// Create the XmlWriter.
using (XmlWriter xmlWriter = XmlWriter.Create(ms, settings))
{
// Write the data set to the writer.
dataSet.WriteXml(xmlWriter);
}
}

关于c# - 如何不使用 C# DataSet 中的 pretty-print 来编写 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/424866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com