Haskell XML pull解析器

Ral*_*lph 2 haskell xml-parsing

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

我正在设想使用一个接受解析器的纯函数.我的函数将调用类似nextItem parser的结果(和模式匹配StartElement,EndElement,Text,EntityRef,等),然后我的函数可以调用本身递归处理子元素等,构建一个私有数据结构,因为它遍历XML"树".

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

Mic*_*man 5

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

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