【问题标题】:Should i use XML Serialization with large file我应该对大文件使用 XML 序列化吗
【发布时间】:2011-03-25 04:28:49
【问题描述】:

我有一组带有 XSD 的非常大的 XML 数据。一个 xml 可能高达 300MB。

我需要将数据从 XML 移动到 SQL Server。

我发现微软有序列化库来将 xml 映射到对象 http://msdn.microsoft.com/en-us/library/182eeyhh.aspx

我担心的问题是,当它将xml映射到对象时,它会将所有数据加载到内存中吗?如果是这样,我似乎无法使用它。

所以 XmlTextReader 是我的案例的最佳方式,例如逐行读取并将数据存储到数据库中。

【问题讨论】:

  • 此迁移是一次性的还是您需要定期执行此操作?
  • XML 数据结构有多复杂?如果它很简单,那么有一些解决方法。
  • @conqenator XML 文件每天都会出现...我需要编写一个服务来将数据从 XML 移动到数据库中。所以它经常
  • @Ron Klein 嗯....你是什么意思复杂???它可能多达 10 个级别的嵌套元素..
  • xml 最终是同一对象的列表吗?喜欢客户名单?如果是这样,那么我认为您可以使用阅读器一次解析一个对象,并将其插入数据库。

标签: c# xml-serialization xsd.exe


【解决方案1】:

是的,在 .NET 中,XML 序列化一次将所有内容读入内存。

一种更节省内存的方法是使用 System.Xml.XmlReader 逐行读取内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多