Подтвердить что ты не робот

Какую библиотеку Haskell XML использовать?

Я вижу, что в Haskell есть несколько библиотек обработки XML.

  • HaXml кажется наиболее популярным (согласно dons)
  • HXT кажется самым передовым (но также самым трудным для изучения благодаря стрелкам)
  • xml, который, по-видимому, является всего лишь основным парсером
  • HXML кажется заброшенным
  • tagoup и tagchup
  • привязки libXML и libXML SAX

Итак, какую библиотеку выбрать, хочу ли я ее

  • чтобы быть достаточно мощным (для извлечения данных из XML и для изменения XML).
  • вероятно, будет поддерживаться долгое время в будущем
  • чтобы быть "выбором сообщества" (выбор по умолчанию)

И хотя большинство из приведенных выше, по-видимому, достаточно для моих текущих потребностей, в чем причина выбора одного из них над другими?

UPD 20091222:

Некоторые примечания о лицензиях:

4b9b3361

Ответ 1

Я бы порекомендовал:

  • xml, если ваша задача проста
  • haxml, если ваша задача сложная
  • hxt, если вам нравятся стрелки
  • hexpat, если вам нужна высокая производительность

Ответ 2

Основная проблема HXT, помимо необычного синтаксиса стрелок, - это производительность и использование памяти. У меня есть приложение, которое тратит 1,2 секунды на обработку 1,5 МБ XML, потребляя около 2,3 ГБ (!) Памяти в процессе. Libxml2 занимает несколько миллисекунд по тем же данным. Извлечение данных с помощью функции css и предикатов стрелки также кажется очень медленным по сравнению с Libxml2.

Ответ 3

Я лично рекомендовал бы HXT, потому что он использует стрелки, которые являются очень полезным и мощным инструментом для изучения, а библиотека синтаксического анализа XML - идеальное применение для стрелок (они были впервые изобретены для решения различных проблем синтаксического разбора,). Стрелки также начинают использоваться вне чисто функционального программирования, например Arrowlets в JavaScript.