2013-02-04 62 views
2

是否有一個XML拉式解析器(類似於Java的StAX)Haskell的?Haskell的XML拉式解析器

我使用它與接受解析器純函數設想。我的函數會調用類似nextItem parser和模式匹配的結果(StartElement,EndElement,,EntityRef等)。然後,我的函數可以調用自身來遞歸地處理子元素等,構造一個私人數據結構,因爲它穿過XML「樹」。

據我瞭解,拉解析應該比構建DOM的內部表示,然後遍歷它更好的表現,雖然我不知道這是不是真的在一個慵懶的語言。

回答

5

您可以使用xml-conduit,它提供流式和全文檔模塊。流式解析模塊Text.XML.Stream.Parse還提供了一些輔助組合子。

的確,如果您有一個真正的懶惰數據源,那麼拉解析器和處理懶惰列表之間不會有(顯着的)性能差異。但是,XML解析通常涉及I/O。管道的設計,給你一個高層次的方法來這類解析問題。

+0

我會檢查出來(在你的書附錄F)。 – Ralph