XML转Lua表

关于XML转Lua表,我的想法是,首先摸清XML需要用到的数据的相关格式规律,然后用lua解析出来,保存为Lua表,再把表专为lua文件。

了解XML

首先是我理解的XML格式

 
<Workbook -- 表信息 -->

...
 <Worksheet ss:Name="工作表1"> 
   <Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="20" x:FullColumns="1"
   x:FullRows="1" ss:DefaultColumnWidth="65" ss:DefaultRowHeight="15">
   <Row>
    <Cell ss:StyleID="s17"><Data ss:Type="String">字段英文名Data>Cell>
    <Cell ss:StyleID="s17"><Data ss:Type="String">levelData>Cell>
    <Cell ss:StyleID="s17"><Data ss:Type="String">costXPData>Cell>
    <Cell ss:StyleID="s17"><Data ss:Type="String">waterMAXData>Cell>
    <Cell ss:StyleID="s17"><Data ss:Type="String">waterrestorespeedData>Cell>
    <Cell ss:StyleID="s17"><Data ss:Type="String">levelnameData>Cell>
    Row>
Worksheet>
Workbook>

解析

基本上就是按上面找到规则,用正则匹配与修改。
出现过一些小问题
1. 要跟策划先统一好规则,因为我想工具化,不想每次都手动改表。我订的规则是前五行策划需要的话放说明,不需要的话也统一空出来,万一以后突然策划想补充些什么呢?增加一行default数值配置。然后还是正式数据。
2. cell的写法有两种

  <Cell ss:StyleID="s16"/>
  <Cell ss:StyleID="s17"><Data ss:Type="Number">2Data>Cell>

所以不能简单用”< Cell.-< /Cell>”来匹配
类似的变成搜索”< Cell”来确定范围

lua表转lua文件

基本也不难,之前做过,所以直接拿来用。
遇到问题:
想统一用py来调,所以又加了一个py来统一入口,py掉lua用的是lupa,安装方法

sudo pip install lupa

最后,把完整的代码贴一下

local print = print
local table = table
local string = string
local type = type
local pairs = pairs

local printAll = function(target, params)
    local targetType = type(target)
    if targetType == "table" then
        local tip = params and params.tip or "This is a Table!^_<......................................"
        local cache = {[target] = "."}
        local isHead = false

        local function dump(t, space, level)
            local temp = {}
            if not isHead then
                temp = {tip}
                isHead = true
            end
            for k, v in pairs(t) do
                local key = tostring(k)
                

你可能感兴趣的:(10000小时,Lua,lua,xml,python,require)