我正在编写一个小型应用程序,旨在从多个站点抓取 XML,然后以我想要的方式处理数据。我以前用不同的语言做过这样的应用程序,我正在为 Haskell 练习编写这个应用程序。
总之,说到点子上了。在网上浏览了数以百万计的不同 XML 解析器后,我决定使用 HXT,因为谁不喜欢箭头。在页面http://www.haskell.org/haskellwiki/HXT/Conversion_of_Haskell_data_from/to_XML之后,我得到了一些似乎读取我的 XML 文件并将其放入我定义的 Haskell 数据类型的东西。我正在使用 XmlPickler 的实例从文件中读取数据以实现此目的。我得到了一些可行的方法,除了这个错误:
fatal error: document unpickling failed
xpCheckEmptyAttributes: unprocessed XML attribute(s) detected
我知道我没有处理所有属性。我不想要所有的属性。有没有办法忽略这些?我想我可以处理所有属性,将它们放入一个新的数据类型中,然后从中提取属性以获得我真正想要的数据。不过,我想避免这种小技巧,因此我在这里,要求 The Proper Way™。
我是否使用了错误的工具来完成这项工作?unpickling 3rd 方数据是否不安全(就像在 Python 中一样)?
我在网上寻找解决方案,但Text.XML.HXT.Arrow.XmlState.SystemConfig
似乎没有禁用此行为所需的东西。