3

I'd like to get a real XSLT processor working with erlang. Which would be the best interface, nif or port driver? According to the nif documentation, nif calls block the runtime, so they should not take long. Is processing a long xml document too long?

Also, I'd like to allow erlang callbacks during the transformation. Does that seem possible? Possible with nif but not port drivers or vice versa?

I've never written any C, so I figured this would be good introduction. Xalan is C++. I assume nif can work with that, right?

4

1 に答える 1

3

ポートドライバーを構築することをお勧めします。

NIF 機能は、新しい組み込み関数を言語に追加し、純粋な Erlang では実装するには遅すぎるものを高速化する方法です。いずれにせよ、NIF は実験的なものと見なされるため、将来のリリースでインターフェイスが大幅に変更される可能性があります。

ポート ドライバーを作成するということは、erlangプロセス全体のように動作する C (または C++) 共有ライブラリを実装することを意味します。これにより、ドキュメントの変換中 (コールバックなど) に他のプロセスと通信できるため、柔軟性が向上します。

ドライバーである必要さえありません。port プログラムと他の Erlang コードとの間で大量のデータを受け渡さない場合は、代わりに単純な port を作成することを検討してください (その方が簡単です)。

于 2010-05-26T16:54:33.407 に答える