はじめに ファイルサイズが数十GB程度あり、ファイルから読み込んだデータを全てメモリ上に展開するには大分無理のあるXMLファイルを扱う機会がありました。そんな時に便利なライブラリnode-xml-streamを見つけたので使い方をご紹介していきます。 今回、Node.jsのバージョンは18.12.0、node-xml-streamのバージョンは1.0.2を使用しています。 node-xml-streamとは XML/HTMLファイルを軽量かつ高速に処理するパーサーライブラリです。Node.jsの標準APIであるStreamを使用して作られています。 通常のファイル読み込みではデータを一気にメモリ上に展開してから後続の処理に進むのに対し、Streamを使用したファイル読み込みではchunkと呼ばれる単位でファイルを読み込みながら順次処理することができるため、物理メモリサイズを超えたファイルの
![Node.jsで巨大なXMLファイルを扱う - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/0443a3335ac06e817032353bb5075a398bfd2807/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9Tm9kZS5qcyVFMyU4MSVBNyVFNSVCNyVBOCVFNSVBNCVBNyVFMyU4MSVBQVhNTCVFMyU4MyU5NSVFMyU4MiVBMSVFMyU4MiVBNCVFMyU4MyVBQiVFMyU4MiU5MiVFNiU4OSVCMSVFMyU4MSU4NiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NjQwZDEyMzE0MjYzZWZkOGM1MzA3OTJlYzU5MWViOGU%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwa2FuZWtvX3QlMjBpbiUyMCVFNiVBMCVBQSVFNSVCQyU4RiVFNCVCQyU5QSVFNyVBNCVCRVdvcmtzJTIwSHVtYW4lMjBJbnRlbGxpZ2VuY2UmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zMiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTdmMmU2MzcxMzg2ZDRmZThiOGJhOTdlZjQ4ZDFhY2Rk%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dcdfbed20b12c4e68fed2391685258cfc)