2012年2月2日 星期四

自製Xml To Excel python版

    最近開始接觸python,發現資源確實很豐富,很多東西都可以撿現成的,搭配shell script更是方便,也難怪Android source 裡面用了許多python作為輔助。
    這次為了吧Android source中所有的String Table轉到Excel上,做各語言字串比對,就練習寫了一個XmlToExcel的python程式。
    為了轉換,首先當然是要讀取xml,所以就先import xml.dom.minidom,這是內建的xml解析器,簡單易用,不過使用後發現其好像無法解析在node text中的<xliff:g id="height" example="170">%2$d</xliff:g>,全部都會變成空白,而xliff是Android中用在插入字串跟格式定義使用,但也因為他至少會顯示空白暫且忽略也尚可接受。
    其次為了轉出Excel,就開始尋找excel相關的python libraries ,結果一搜索馬上就找到xlrd, xlwt, xlutils, 輕輕鬆鬆就可以轉出.xls,五分鐘就上手。
   之後開始了解Android String Table的xml格式,決定解出strings, string-arrays,plurals到個別一sheet,每種語言各佔一個column,每個app一個excel表,之後就可以開始寫程式啦,主義就是解析哪個node存到excel那格,沒什麼難度所以就不分析程式碼了,下面附件就是完成品。
XmltoExcel.py
    搭配shell script就可以自動完成多個app多個語言多個.xml轉Excel的動作了,程式碼如下面檔案,同樣很簡單就不分析,注意兩個檔都要,substring是定義分隔符號並用來把字串最後一個字取出。
mkStringTable.sh
substring
    不過寫完shell script,覺得shell script對於處理字串還真是不方便,要做字串處理很多都要自己設計才行,不像其他語言都已經做好,等人來使用。

沒有留言:

張貼留言