我正在寻找一个可以将一种格式的文本文件转换为另一种格式的文本文件的库。示例格式为XLS,XML,JSON,TSV,CSV和各种形式的固定字段长度文件。

我有标准输入格式和标准输出格式。通常,输入文件的格式不同,需要进行转换。有时我还需要转换输出文件才能使用它。这些似乎是一个相当普遍的用例,因此如果可以避免的话,我不想重新发明轮子。要么这不像我想象的那么普遍,要么是我的Google-fu在这方面使我失败。大多数结果要么是在线转换器,要么是单个源/目标转换器(仅CSV到JSON)。

C#是可取的,尽管我可以调用的命令行选项也可以工作。开源或免费是更可取的选择,但所有选项均受欢迎。

P.S.我知道有几种ETL解决方案可以做到这一点。我不是在寻找SSIS或Talend。我正在寻找可以以编程方式调用的库或至少一个命令行工具。

评论

我刚刚找到了这个stackoverflow.com/questions/62077/…。但是那里的答案看起来并不像图书馆。

如果您可以管理一些脚本/编程,那么perl对于此类任务非常出色(具有CPAN模块用于解析和写入JSON,XML,CSV和几乎所有常见的文件格式。Python也应该可以,但我没有使用它。

我不确定它是否正确,但是Pandoc是可以在标记格式之间转换的命令行工具(和Haskell库)。它不支持您的格式,但是您可以使用Lua添加新格式。

我不知道如何将JSON(树结构)映射到CSV文件,除非您将每个节点映射到一行,并且使行“指向”(通过包含行号)以及其他行。我不知道如何轻松处理这样的CSV文件。

#1 楼

为了转换XML,您应该仅使用
XSLT的任何实现。 (如果您有
MS系统,则磁盘上已经存在“ msxsl”)。

只需几行XSLT即可生成等效的JSON。 XSLT无法在JSON上运行,但是它对XML的作用非常出色。如果这还不够,您可以在XSLT脚本中添加一些JavaScript粘贴以提供帮助。

实际上,如果您已经拥有该文件的XML版本,则应该能够使用XSLT生成任何文件。其他所需格式。因此,通过选择XML作为您的“规范”表示,您只需要一个工具。

#2 楼

我不知道有什么完美的选择。但是,我确实有一个选项,可以将CSV / Excel / JSON / ARFF转换为CSV / JSON / ARFF。扩展也相对容易(尽管我个人还没有这样做)。

这是OpenKnowledge Foundation Lab的DataConverters。它基于python,但确实具有CLI选项。 (尽管IIRC确实需要为此安装python)。

我所看到的问题是您对XML的支持不足以及无法写入XLS。