这是 XML 代码:
<?xml version="1.0" encoding="utf-8"?>
<Enemies>
<Enemy id="001" name="Bandit" combatstyle="1" aitype="1" difficulty="1" imgsheet="001.png" level="2" hp"5" />
<Enemy id="005" name="Dragon" combatstyle="1" aitype="1" difficulty="1" imgsheet="002.png" level="5" hp"50" />
</Enemies>
这是我用来搜索内容的代码:
pugi::xml_document doc;
pugi::xml_parse_result result = doc.load_file("assets/enemies.xml");
pugi::xml_node nodes = doc.child("Enemies");
for (pugi::xml_node tool = nodes.child("Enemy"); tool; tool = tool.next_sibling("Enemy"))
{
//only here to check if it's working
string lol = tool.attribute("name").as_string();
int hi = tool.attribute("id").as_int();
}
当循环执行时 tool = tool.next_sibling("Enemy") 它到达末尾并跳出循环。我可以从第一个敌人那里得到很好的信息,所以我正在做正确的事情。
我不知道我做了什么。但现在看来有效了。这真的很奇怪,我没有对班级做任何改变,现在它可以工作了。
无论如何,一切都好!
我的node.next_sibling(“name1”)也有问题。我有大约 100 个名为“name1”的兄弟姐妹。当我循环遍历它们时,有时循环会到达末尾,但大多数时候它会在兄弟姐妹长度的中间放弃。
始终处于同一位置。我检查了 XML 文件,没有任何区别。我检查了兄弟姐妹之间的地址(在调试器中),并且当循环中断时,下一个兄弟姐妹的地址具有比其他兄弟姐妹更大的偏移量。我不知道为什么会发生这种情况。