Haskell XML pull解析器

时间:2013-02-04 14:18:33

标签: haskell xml-parsing

Haskell是否有XML pull解析器(类似于Java StAX)?

我正在设想使用一个接受解析器的纯函数。我的函数会在结果(nextItem parserStartElementEndElementText等上调用EntityRef和模式匹配等内容。)我的函数可以递归调用自身来处理子元素等,在遍历XML“树”时构造私有数据结构。

据我了解,pull-parsing应该比构造DOM的内部表示具有更好的性能,然后遍历它,虽然我不知道这是否在懒惰的语言中是正确的。

1 个答案:

答案 0 :(得分:5)

您可以使用xml-conduit,它提供流式和全文档模块。流解析模块Text.XML.Stream.Parse还提供了许多辅助组合器。

确实如果你有一个真正懒惰的数据源,拉解析器和处理惰性列表之间就没有(显着的)性能差异。但是,XML解析通常涉及I / O. conduit旨在为您提供解决此类解析问题的高级方法。