我应该对大文件使用 XML 序列化吗

发布于 2024-10-25 18:07:19 字数 374 浏览 1 评论 0原文

我有一组非常大的带有 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

弱骨蛰伏 2024-11-01 18:07:19

是的,在 .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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文