使用哪个Haskell XML库?

sas*_*nin 60 xml comparison haskell

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

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

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

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

虽然上面的大部分内容似乎足以满足我目前的需求,但是选择其中一个而不是其他需求的原因是什么?

UPD 20091222:

关于许可证的一些注意

Don*_*art 57

我建议:

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

  • 我真的从以下教程中受益:http://www.haskell.org/haskellwiki/HXT/Practical.与我发现的大多数其他教程不同,这个教程从一个基本的XML文档开始,向您展示如何解析它然后慢慢添加复杂性. (5认同)
  • "很可能在未来长时间支持"我绝对会使用Haxml.这是10岁,作者非常活跃. (4认同)

Ale*_*ubo 14

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


Wil*_*ill 10

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