将配置文件转换为XML

时间:2009-02-09 11:02:06

标签: xml converter

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

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

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

我们已经考虑将它们定义为BNF并使用YACC或它的等价物,但是唠叨的感觉是必须使用XML来做这件事。

需要的是一种以XML格式定义配置文件数据格式的方法,然后使用该文件将旧文件转换为有效的XML。将XML文件转换回传统文件格式的优选方法将非常有用。

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

尝试使用像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架构非常复杂,而且通常会出现问题。