3

我想要一个真正的 XSLT 处理器与 erlang 一起工作。哪个是最好的接口、nif 或端口驱动程序?根据 nif 文档,nif 调用会阻塞运行时,因此它们不会花费很长时间。处理长 xml 文档是否太长?

另外,我想在转换期间允许 erlang 回调。这似乎可能吗?可以使用 nif 但不能使用端口驱动程序,反之亦然?

我从来没有写过任何 C,所以我认为这是一个很好的介绍。Xalan 是 C++。我认为 nif 可以使用它,对吗?

4

1 回答 1

3

我建议构建一个端口驱动程序。

NIF 工具是一种向语言添加新的内置函数并加快在纯 Erlang 中实现速度太慢的方法的方法。无论如何,NIF 都被认为是实验性的,因此接口可能会在未来的版本中发生根本性的变化。

编写端口驱动程序意味着实现一个行为类似于整个 erlang进程的 C(或 C++)共享库。这允许更大的灵活性,因为您可以在转换文档(回调...)等时与其他进程进行通信。

它甚至不必是司机。如果你没有在你的端口程序和其他 Erlang 代码之间传递大量数据,你可能会考虑编写一个普通的端口(它更容易)。

于 2010-05-26T16:54:33.407 回答