我应该对大文件使用 XML 序列化吗
我有一组非常大的带有 XSD 的 XML 数据。一个 xml 可能高达 300MB。
我需要将数据从 XML 移至 SQL Server。
我发现微软有序列化库可以将xml映射到对象中 http://msdn.microsoft.com/en-us/library/182eeyhh.aspx
我担心的问题是,当它把xml映射到object时,会把所有数据加载到内存中吗?如果是的话,我似乎无法使用它。
XmlTextReader 对于我的情况来说是最好的方法吗,比如逐行读取并将数据存储到数据库中。
I have a set of very large XML data with XSD. One xml might be up to 300MB.
I need to move data from XML into SQL Server.
I found that Microsoft has serialization library to map xml into objects
http://msdn.microsoft.com/en-us/library/182eeyhh.aspx
The problem I am worrying about is, when it maps the xml into object, will it load all the data into memory? If it does, it seems I cannot use it.
So is XmlTextReader the best way for my case like read line by line and store data into database.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,在 .NET 中,XML 序列化将所有内容一次性读取到内存中。
更节省内存的方法是使用 System.Xml.XmlReader 逐行读取内容。
Yes, in .NET, XML serialization reads everything into memory at one time.
A more memory-efficient approach is to use a System.Xml.XmlReader to read the content line-by-line.