2

SSH2 接続から最大 16k のチャンクで XML データをシリアルに受信しています。チャンクを受け取るたびに、単純に parse_more 関数を介して XML::Parser モジュールに渡します。これは本当にうまくいきます。SAX パーサーを使用するための切り替えを調査していましたが、parse_more 関数が見つかりません。私が見つけたすべての例では、parse_uri または parse_string を使用しています。parse_string が parse_more と同等であることを望んでいましたが、メモリ内に文字列全体が必要であり、SAX を使用する目的が大きく損なわれます。SAXでデータをチャンクで処理する方法を知っている人はいますか?

余談ですが、perl モジュールのドキュメントが非常に貧弱だと思う人はいますか? 多くの場合、少なくとも利用可能な関数のリストすらありません。

4

2 に答える 2

0

XML::Parser::PerlSAXを見たことがありますか? ドキュメントツリー全体をメモリに保持していないようです。

[編集]代わりに、ファイル ハンドルを使用して XML の一部を取得します。チャンクを XML::Parser に渡すためのファイル ハンドルのようなオブジェクトを作成できますか?

于 2013-02-19T23:34:33.097 に答える
0

答えは見つかりましたか?私は以前に同様の質問をしましたが、XML::SAX::Expat::Incremental私たちが必要としているものを正確に実行しているように見えるものに出くわしました. 機能がparse_moreあります。取得した文字列チャンクを渡すだけです。

大規模なデータセットでテストする時間がありませんでしたが、初期テストはうまくいきました。

于 2014-12-24T09:10:45.553 に答える