私は、複数のサイトから XML をスクレイピングし、希望する方法でデータを処理することを目的とした小さなアプリケーションを作成しています。私は以前にそのようなアプリケーションを作成しましたが、異なる言語で、Haskell の練習用にこれを書いています。
とにかく、ポイントに。Web で何百万もの 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™ を求めています。
仕事に間違ったツールを使用していませんか? サードパーティのデータを unpickle することは安全ではありませんか (Python の場合のように)?
解決策を Web で調べましたが、Text.XML.HXT.Arrow.XmlState.SystemConfig
この動作を無効にするために必要なものがないようです。