允许用户指定输出格式的最简单方法

时间:2011-08-30 12:04:46

标签: java xml parsing format grammar

我编写了一个以XML格式输出数据的应用程序。但是,允许用户完全自定义输出格式以便他们可以更轻松地将其集成到应用程序中,这将是一件好事。

解决此问题的最佳方法是什么?我最初的想法是定义语法并从头开始编写解析器。

  • 是否有任何免费的Java库可以帮助解析自定义脚本(格式化?)语言?
  • 由于我已经拥有了XML,因此用搜索和放大方式“转换”这是一种更好的方法吗?替换算法?

我应该在这里指定'用户'是其他程序员,所以定义一个简单的语言就可以了,并且输出可能是递归的(想象一下将目录的内容输出到XML)。

在我走错轨道之前,只是寻找这方面的一般建议。

编辑:澄清......我的情况有点独特。应用程序输出要加载到游戏引擎中的坐标和其他数据。每个人似乎都在自己的引擎中使用不同的完全自定义格式。大多数人不想实现JSON解析器,而宁愿使用他们已经工作的东西。换句话说,完全控制输出符合我的用户的利益,要求他们实现不同的解析器

3 个答案:

答案 0 :(得分:1)

您是否考虑过使用VelocityFreeMarker这样的模板引擎。

答案 1 :(得分:0)

我会将结果bean创建为POJO。

然后我会有不同的类处理结果bean。这样,如果需要,您可以使用新格式轻松扩展。

E.g

Result result = logic.getResult();
XMLOutputter.output(result, "myXMLFile.xml");
Format1Outputter.output(result, "myFormat1File.fo1");
Format2Outputter.output(result, "myFormat2File.fo2");

答案 2 :(得分:0)

如果您计划将此作为API提供给多方,我会建议不要过度定制,这会给您的产品增加不必要的复杂性,并为错误引入另外一个地方。

其次,它会增加文档的复杂性,并且副作用可能会导致您的文档与api失去同步。

我建议考虑的最重要的事情是,让你的流更容易消化,就是以JSON格式提供输出,几乎每种现代语言都有很好的支持(我自己使用Gson for Java)。