使用哪个Haskell XML库?

时间:2009-09-01 08:48:29

标签: xml haskell comparison

我看到Haskell中有一些XML处理库。

  • HaXml似乎是最受欢迎的(根据dons
  • HXT似乎是最先进的(但也是最难学的,多亏箭头)
  • xml似乎只是基本的解析器
  • HXML似乎被放弃了
  • tagsoup和tagchup
  • libXML和libXML SAX绑定

那么,如果我想要它选择哪个库

  • 功能相当强大(从XML提取数据并修改XML)
  • 可能会在未来很长一段时间内得到支持
  • 成为“社区选择”(默认选择)

虽然上述大部分内容似乎足以满足我目前的需求,但是选择其中一种产品的原因是什么呢?

UPD 20091222

关于许可证的一些注意事项:

3 个答案:

答案 0 :(得分:57)

我建议:

  1. xml,如果您的任务很简单
  2. haxml,如果您的任务很复杂
  3. hxt,如果你喜欢箭头
  4. hexpat如果您需要高性能

答案 1 :(得分:14)

除了不寻常的箭头语法之外,HXT的主要问题是性能和内存使用情况。我有一个应用程序花费1.2秒处理大约1.5MB的XML,在此过程中消耗大约2.3GB(!)的内存。 Libxml2在相同的数据上花费几毫秒。与Libxml2相比,通过css函数和箭头谓词提取数据似乎也非常慢。

答案 2 :(得分:10)

我个人推荐HXT ,因为它使用箭头,这是一个非常有用和强大的学习工具,而XML解析库是箭头的完美用途(它们最初是为解决各种问题而发明的)解析monads无法解决的问题)。箭头也开始在纯函数式编程之外使用,例如Arrowlets in JavaScript