我必须处理相当大的XML文件,我想使用xml-conduit
的流API来浏览它们并提取我需要的信息。
在我的情况下,使用流式传输xml-conduit
特别有吸引力,因为我不需要来自这些文件的大量数据,我需要对其执行简单的聚合,因此管道是完美的。
现在,我并不总是知道文件的确切结构。文件是由世界各地不同版本的(有时是错误的)软件生成的,所以我不能强加架构。
然而,我知道我感兴趣的元素及其形状。但是,正如我所说,这些元素可以与其他元素等位于不同的顺序。
我想,我需要的是跳过我不感兴趣的所有元素,只考虑那些想要的元素。
我最初想写这样的东西:
tagName "person" (requireAttr "age" <* ignoreAttrs) <|> ignoreTag (const True)
但由于ignoreType
返回Maybe ()
使用xml-conduit
流API时,跳过所有“未知”标记的方法是什么?