Решил я подружить Хаскел с xml в своей программке.
Почитал это
http://en.wikibooks.org/wiki/Haskell/XML
С горем пополам поставил нужные библиотеки
Но у меня библиотека работает не так, как указано
тут
Prelude Text.XML.HXT.Parser.XmlParsec> xread "<foo>abc<bar/>def</foo>"
[NTree (XTag (LP foo) []) [NTree (XText "abc") [],NTree (XTag (LP bar) []) [],NTree (XText "def") []]]
Неужели я как-то криво поставил пакеты? Или это новая версия пакета?
Теперь рассмотрим простой пример:
Prelude Text.XML.HXT.Parser.XmlParsec> xread "<a x=\"1\"><b/></a>"
[NTree (XTag (LP a) [NTree (XAttr (LP x)) [NTree (XText "1") []]]) [NTree (XTag (LP b) []) []]]
Почему в выводе участвует аж 4 NTree? Какова структура документа у этой библиотеки? Я надеялся увидеть два дерева: корень — таг "a", второе дерево образует другой узел "b".
Может, посоветуете библиотеку попроще? Возможностей мне крутых не надо: распарсить файл, попрыгать по узлам, немного сконвертировать узлы во что-то другое. Простейшие XPath возможны.