【问题标题】:Libraries that aid translating or converting file formats to other file formats帮助将文件格式翻译或转换为其他文件格式的库
【发布时间】:2011-01-05 08:26:36
【问题描述】:

我需要将家谱文件与 OpenGen XML 文件格式相互转换。很简单,我可以编写 Java 代码来解析特定文件并输出 OpenGen 文件。如果有人在他们的项目中使用 Java,他们可以使用我们的库。如果有人在他们的项目中不使用 Java,他们可以移植我们的翻译代码或在外部运行我们的 Java 应用程序。

由于这必须是一个非常普遍的需求,我希望有一种机制可以让这更容易。理想的解决方案是,我可以创建一个包含规则/映射的文件,以在一种文件格式和我们的格式之间进行转换。然后分发此映射文件,以便其他任何人都可以使用可以使用此映射文件执行翻译的许多库之一。这样,翻译就容易多了,现在任何人都可以在他们选择的语言/平台内进行翻译。

我猜在我们的例子中,映射文件会有点复杂,因为至少需要处理层次结构。我想更复杂的事情是一些家谱文件格式是二进制的......

这样的机制存在吗?最好的方法是什么?

【问题讨论】:

    标签: parsing format file-format text-parsing


    【解决方案1】:

    如果您的源语言始终是 XML,您可以使用 XSLT 或 CDuce

    否则,您需要像 Antlr 这样的体面的解析和漂亮的打印框架,并准备投入大量精力。对于一些琐碎的情况,实现自己的基于组合器的 Packrat 解析器会更容易。

    【讨论】:

    • 源文件格式很少是 XML,正如我在问题中提到的,对于某些文件格式它甚至是二进制的......我正在检查 ANTLR,谢谢。乍一看,它似乎是一个解析文件的好工具,给定语法,但它只是 Java,我仍然需要实现翻译过程。
    • Antlr 本身是用 Java 编写的,但它针对许多不同的平台。
    猜你喜欢
    • 2014-06-07
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    相关资源
    最近更新 更多