【问题标题】:Convert configuration files to XML将配置文件转换为 XML
【发布时间】:2010-10-06 09:03:36
【问题描述】:

我们有大量的传统配置文件,各种格式通常类似于 KEYWORD DATA KEYWORD DATA KEYWORD DATA。

数据本身的格式在每个配置文件中都是唯一的。

我们想做的是以某种方式定义文件数据格式,然后使用它来允许应用程序检查配置文件是否与定义的文件格式相符。

我们曾考虑将它们定义为 BNF 并使用 YACC 或等效的,但令人讨厌的感觉是必须使用 XML 来做这件事。

需要一种方法来定义配置文件数据格式,最好是 XML 格式,然后使用该文件将旧文件转换为有效的 XML。将 XML 文件转换回旧文件格式的首选方法会很有用。

【问题讨论】:

  • 您目前使用什么语言进行开发?
  • 一两个实际遗留文件的例子会有所帮助。关键字和数据真的都在一行上,还是只是 StackOverflow 重新格式化了你的文本?也是您希望 xml 外观的示例。

标签: xml converter


【解决方案1】:

对于转换 XML->legacy 文件,XSLT 可能会正常工作。

【讨论】:

    【解决方案2】:

    这正是Gelatin 设计的问题类型。 (另外,自我宣传警告。)

    【讨论】:

      【解决方案3】:

      看看 Altova-Tools,尤其是 Mapforce。 AFAIR 他们可以从/到用户文件格式转换,映射可以很自然地在屏幕上完成。 (Altova Tools 也可以生成 XSD 进行检查。)

      【讨论】:

        【解决方案4】:

        尝试使用像 awk(或 gawk)这样的简单文本处理器来生成 XML。模式看起来像这样。

        BEGIN { 
            print "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
            print "<config-type>"; 
        }
         { print "    <" $1 ">" $2 "</" $1 ">"; }
        END { print "</config-type>"; }
        

        确保编码正确。对于英文的配置文件,“ASCII”就足够了。

        之后,您可以使用多种工具来处理该 XML。我建议使用这种格式,因为它最容易创建和处理:

        <config-type>
            <KEYWORD1>DATA1</KEYWORD1>
            <KEYWORD2>DATA2</KEYWORD2>
            <KEYWORD3>DATA3</KEYWORD3>
        </config-type>
        

        为您拥有的每种配置文件类型的“config-type”使用不同的名称,以便于区分。

        要检查 XML 的格式,最简单的方法是为它定义一个 DTD。许多 XML 编辑器可以读取现有的 XML 文件并为其创建 DTD。这个 DTD 并不完美,但它会是一个很好的起点。

        然后您可以在 XML 标头中指定 DTD 的名称,并告诉 XML 解析器验证结构(但不是数据)。

        要检查数据,您可以使用 XML 模式,但 XML 模式非常复杂,而且往往是矫枉过正。

        【讨论】:

        • 我不会把 XML Schema 称为矫枉过正。尤其是当你想用 XML 做任何严肃的事情时,它是必需的。
        • lol 我不能不注意到你并没有反对“非常复杂”;)
        猜你喜欢
        • 2021-12-24
        • 2019-11-28
        • 2015-05-30
        • 2011-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多