2009-02-09 123 views
2

我們擁有大量的各種格式的傳統配置文件,通常是像KEYWORD DATA KEYWORD DATA KEYWORD DATA這樣的各種格式。將配置文件轉換爲XML

數據本身的格式在每個配置文件中都是唯一的。

我們希望做的就是以某種方式定義文件數據格式,然後用它來允許程序來檢查一個配置文件對所定義的文件格式。

我們曾想過將它們定義爲BNF和使用YACC或同等學歷,但嘮叨的感覺是,必須有這樣使用XML的路程。

將需要的是定義在一個XML格式的較好的配置文件中的數據格式的一種方式,然後用該文件將傳統的文件轉換成有效的XML。將XML文件轉換回傳統文件格式的一種優選方式將是有用的。

+0

您目前使用哪種語言進行開發? – 2009-02-09 11:09:54

+0

一個或兩個實際遺留文件將有所幫助。關鍵字和數據是否全部在一行上,或者這只是StackOverflow重新格式化您的文本?另外一個你如何看xml的例子。 – 2009-02-10 01:41:41

回答

0

看看Altova-Tools,特別是Mapforce。 AFAIR他們可以從/到用戶文件格式轉換和映射可以很自然地在屏幕上完成。 (Altova的工具還可以生成XSD對證。)

2

對於皈依XML->傳統的文件,XSLT可能會工作得很好。

-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> 

的「配置型」爲每種類型的配置文件,你有那麼他們很容易區分使用不同的名稱。

要檢查XML的格式,最簡單的方法是爲它定義一個DTD。許多XML編輯器可以讀取現有的XML文件併爲其創建DTD。該DTD不會很完美,但它將是一個非常好的起點。

然後,您可以指定DTD在XML頭的名稱,並告訴XML解析器來驗證結構(而不​​是數據,雖然)。

要檢查數據,您可以使用XML模式,但XML模式非常複雜並且常常是過度殺毒。

1

這正是Gelatin是專爲問題的類型。 (此外,自我提升警告。)