Lua - 我只是想解析一个XML文件

时间:2011-04-07 16:35:31

标签: xml lua luaxml

我正在使用LuaXml。我的项目中有3个文件,都在根级别:main.lua,test.xml和xml_parser.lua。

main.lua:

require("xml_parser")
local obj,err = XmlParser:ParseXmlFile("test.xml")
if(not err) then
    //do something with the xml
else
    print("ERROR: "..err);      
end

的test.xml:

<?xml version="1.0" ?>
<level>
  <bg>images/bg1.png</bg>
</level>

结果: 错误:test.xml:没有这样的文件或目录

它不能比这简单得多。为什么看不到文件?

3 个答案:

答案 0 :(得分:4)

也许文件名是相对于当前工作目录解释的,而不是源代码的目录。我不认识Lua,但这对于大多数语言来说都是正常的:它是标准的unix API如何工作(我想Windows也是如此),大多数语言只是使用它们。我所知道的唯一一种解释相对于程序的路径的语言是Ant。

因此,在运行程序之前将目录更改为项目目录,或者(更好)用绝对路径替换相对路径。或者,如果有办法找出当前脚本的位置,您可以使用它来构造绝对路径。

答案 1 :(得分:1)

您可能希望使用procmon或filemon之类的工具来查找使用的文件系统,以及它失败的原因。

答案 2 :(得分:1)

Lua不擅长处理文件夹。而且,我的意思是它甚至没有文件夹的概念;它将它留给通常嵌入它的“主机”程序。

我查看了源代码,因为io.open无法找到文件,所以您遇到的错误似乎发生了。发生这种情况是因为io.open无法推断出脚本的“工作文件夹”。

如果你给它的绝对路径而不是相对的路径,你的程序应该可以正常工作。

如果您确实需要使用相关文件夹,我们最好的选择是使用现有libraries之一,例如LuaFileSystem

相关问题