如何在节点 js 中处理/读取大型 (3gb) xml 文件?

问题描述

我想读取一个大的 xml 文件并将数据存储在数据库中。我尝试过 xml2js,但出现错误 Error: Cannot create a string longer than 0x3fffffe7 characters

我想知道处理xml文件的最佳实践,我是可以直接处理xml还是使用任何库转换成json或将大文件分成多个小文件

解决方法

为此您确实需要一个流处理器。不幸的是,XML 技术并没有很好地为 Node.js 提供服务(Saxon 在 Java 平台上进行流式 XSLT,但在 Node.js 上它是非流式的)。最好的办法可能是使用 SAX 解析器(例如 https://www.npmjs.com/package/sax)编写一个低级应用程序——不过如果您在 npm 上搜索“XML SAX”,您会看到还有其他可用的应用程序。