5

少量のメモリ、または一定量のメモリを使用する xpath サポートを備えた xml パーサーを見つけようとしています。ほぼ 1 ギガのような大きな xml ファイルを解析しようとしています。xqilla について読んでいます。 domベースであるため、非常に大量のメモリを使用します。間違っている場合は修正してください..とにかく、C ++およびLinux用のそのようなxmlパーサーのアイデアはありますか?

4

3 に答える 3

1

Saxon-EEは、XSLTまたはXQueryを使用した大きなXMLドキュメントのストリーミングをサポートします(ストリーミングは、XQueryよりもXSLTでより適切にサポートされます)。詳細は

于 2011-04-16T21:26:34.827 に答える
1

基本的に 1 回のパスで XML を処理できる場合は、SAX パーサーを使用することをお勧めします。Apache Xerces C++はどうですか?

于 2011-04-16T09:35:46.527 に答える
0

あなたは見るかもしれません

pugixmlは、非常に高速で便利でメモリ効率の高い XML ドキュメント処理を可能にします。ただし、pugixml には DOM パーサーがあるため、メモリに収まらない XML ドキュメントを処理することはできません。また、パーサーは非検証型であるため、DTD/スキーマの検証が必要な場合、ライブラリは適していません

ただし、明らかにストリーミング パーサーではありません。私は、ストリーミングと xpath が一般的にうまく動作しないことを知っています (潜在的なランダムアクセス要件のため)。ただし、.NET では、これまでになく有名な XPathReaderが、人気のある XPath のサブセットのギャップを埋めたようです :)

于 2011-04-16T19:13:57.133 に答える