将XML文件转换为lua表?

| 我有一个从Tiled生成的XML文件(格式:http://sourceforge.net/apps/mediawiki/tiled/index.php?title=TMX_Map_Format) 和示例:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<map version=\"1.0\" orientation=\"isometric\" width=\"100\" height=\"100\" tilewidth=\"64\" tileheight=\"32\">
 <tileset firstgid=\"1\" name=\"grass_and_water_0\" tilewidth=\"64\" tileheight=\"64\">
  <image source=\"tiles/grass_and_water_0.png\" trans=\"ff00ff\" width=\"64\" height=\"64\"/>
 </tileset>
 <layer name=\"Tile Layer 1\" width=\"100\" height=\"100\">
  <data>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
   <tile gid=\"1\"/>
  </data>
 </layer>
</map>
这是其摘要,因为实际文件超过10,000行。 由于性能原因,我试图将其从XML文件转换为Lua表,例如
variables = [tilewidth=64,tileheight=64,width=100,height=100]

tileset = [1=[source=\"tiles/grass_and_water_0.png\",width=64,height=64],....]

tile_map[][] = [[1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1]]
如果将1'替换为平铺gid值。其余数据(变量需要添加到另一个表中,我可以使用) 我想要这样做的原因是因为使用本机Lua表比使用XML解析然后使用生成的数据要快。 额外的垃圾乱码: 然后,我可以简单地在Drawing Isometric游戏世界中使用for命令生成显示。 例如,这还允许我为顶部对象生成更多层
objects_map[][] = [[0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,3,3,3,3,4,4,5,5,5,5,0,0],
[0,0,3,3,3,3,3,4,6,6,6,5,0,0],
[0,0,3,3,3,3,4,1,6,5,5,6,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0]]
然后我可以在一次绘制调用中显示它,将两个数组组合在一起,并用tile_map和objects表中的表数据替换0 \来创建类似
result_map[][] = [[1,1,1,1,1,1,1,1,1,1,1,1,1,1],
[1,1,3,3,3,3,4,4,5,5,5,5,1,1],
[1,1,3,3,3,3,3,4,6,6,6,5,1,1],
[1,1,3,3,3,3,4,1,6,5,5,6,1,1],
[1,1,1,1,1,1,1,1,1,1,1,1,1,1]]
看起来很简单,我需要做的就是弄清楚如何将XML转换为tilemap。 任何帮助都是很不错的,或者是关于我在哪里可以获得帮助的方向,我看着lua用户,却没有真正找到任何可以帮助我的东西。     
已邀请:
我建议使用LuaExpat。我已经在生产代码中使用了它,并且效果很好。您只需要编写一些回调函数,这些函数将在遇到输入XML结构的各个部分时生成所需的Lua表。应该是一个瞬间。     

要回复问题请先登录注册