我有以下 xml 文件:
<?xml version="1.0" ?>
<Hello>World</Hello>
它与我的所有其他文件位于同一目录中。
我使用这个源文件方法来解析它:
void Character::assign_xml(const char * filename) //Assign xml takes the name of the xml file as a string, and uses it to parse the file's nodes.
{
TiXmlDocument * doc = new TiXmlDocument(filename);
bool loadOkay = doc->LoadFile(filename);
if (loadOkay)
{
printf("\n%s\n", filename);
}
else
{
printf("%s does not work.", filename);
}
delete doc;
}
然而,当我将字符串传递给它时,我的 loadOkay 变量等于 false。为什么是这样?
我的输出产生以下内容:
Starting /home/holland/code/qt/chronos-build-desktop/chronos...
id01.xml does not work.Failed to open file/home/holland/code/qt/chronos-build-desktop/chronos exited with code 0
作为 strace 提供:
futex(0x84579c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("id01.xml", O_RDONLY) = -1 ENOENT (No such file or directory)
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb773e000
write(1, "id01.xml does not work.Failed to"..., 42id01.xml does not work.Failed to open file) = 42