XML转Lua表

本文介绍了将XML数据转换为Lua表的过程,包括理解XML格式、使用正则表达式进行解析,以及如何将Lua表转为lua文件。在解析过程中,强调了与策划统一规则的重要性,并解决了匹配XML元素的问题。最后,提到了使用Python的lupa库调用lua代码的实现方式。
摘要由CSDN通过智能技术生成

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

了解XML

首先是我理解的XML格式

<?xml version="1.0"?> <!-- 表头 -->
<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">level</Data></Cell>
    <Cell ss:StyleID="s17"><Data ss:Type="String">costXP</Data></Cell>
    <Cell ss:StyleID="s17"><Data ss:Type="String">waterMAX</Data></Cell>
    <Cell ss:StyleID="s17"><Data ss:Type="String">waterrestorespeed</Data></Cell>
    <Cell ss:StyleID="s17"><Data ss:Type="String">levelname</Data></Cell>
    </Row>
</Worksheet>
</Workbook>

解析

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

  <Cell ss:StyleID="s16"/>
  <Cell ss:StyleID="s17"><Data ss:Type="Number">2</Data></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)
                
XMLLua格式的软件是一种用于将XML文件化为Lua语言代码的工具。XML是一种标记语言,常用于存储和传输数据。而Lua是一种轻量级脚本语言,常用于编写各种应用程序。XMLLua的软件可以将XML文件中的数据和结构化为相应的Lua语法,以便在Lua程序中进行处理和使用。 使用XMLLua的软件,我们可以方便地将XML文件中的数据导入到Lua程序中。这样,我们不再需要手动解析和处理XML文件,而是可以直接使用Lua语言的方式来处理数据。这样做的好处是,简化了开发过程、提高了效率,同时也降低了出错的可能性。 XMLLua的软件通常有用户友好的图形界面,使得操作便捷、易于理解。我们可以通过简单的拖拽或指定XML文件的路径,选择要化的内容,并设置一些化参数,然后软件就会生成对应的Lua代码。生成的Lua代码一般包括各种数据结构、变量和函数定义,以及对XML数据解析的相关处理。 通过XMLLua的软件,我们可以将复杂的XML数据化为相应的Lua代码,以便在Lua程序中进行进一步的处理和操作。无论是处理游戏的配置文件,还是解析和存储大量的数据,XMLLua的软件都为我们提供了一种快速、方便的方式。 综上所述,XMLLua的软件是一种实用工具,可以将XML文件化为Lua语言代码,方便我们在Lua程序中使用和处理XML数据。它简化了开发过程、提高了效率,使得我们更加方便地处理和操作XML数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值