【问题标题】:What are some resources I can follow to create a program that writes an XML file using STREAM? [closed]我可以遵循哪些资源来创建使用 STREAM 编写 XML 文件的程序? [关闭]
【发布时间】:2017-11-27 19:34:31
【问题描述】:

这是我的功课。我需要使用 STREAM 方法将我的数据写入 XML 文件 invoiceData.xml。我已经完成了一个使用 DOM 方法从 XML 文件中读取的程序,如果告诉你它有帮助的话。 :)

所以请帮助我,我们将不胜感激。

【问题讨论】:

标签: c# xml visual-studio stream


【解决方案1】:

中级:

using(var writer = XmlWriter.Create(stream)) { /* your code here */ }

你已经准备好了;但是,我认为即使这对于大多数情况来说也不必要地过度复杂化。如果您在内存中有数据,我更典型的做法是让 XmlSerializer 担心这一点:

var ser = new XmlSerializer(obj.GetType());
ser.Serialize(stream, obj);

所以:google XmlSerializerXmlWriter :) 都在 MSDN 上

【讨论】:

    【解决方案2】:

    正如@MarkGravell 在其他答案中所建议的,XmlSerializer 是更好的选择。

    XmlSerializerNamespaces xmlSerializerNamespaces = new XmlSerializerNamespaces();
    xmlSerializerNamespaces.Add("", "");
    
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(YourClass));
    using(FileStream fileStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None, BufferSize, FileOptions.WriteThrough))
    {
        XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();
        xmlWriterSettings.Indent = true;
        xmlWriterSettings.NewLineOnAttributes = true;
    
        XmlWriter xmlWriter = XmlWriter.Create(fileStream, xmlWriterSettings);
        xmlSerializer.Serialize(xmlWriter, yourClassInstance, xmlSerializerNamespaces);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多