pugiXML:无法迭代兄弟姐妹!只加载第一个

问题描述 投票:0回答:2

这是 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") 它到达末尾并跳出循环。我可以从第一个敌人那里得到很好的信息,所以我正在做正确的事情。

c++ xml for-loop pugixml
2个回答
0
投票

我不知道我做了什么。但现在看来有效了。这真的很奇怪,我没有对班级做任何改变,现在它可以工作了。

无论如何,一切都好!


0
投票

我的node.next_sibling(“name1”)也有问题。我有大约 100 个名为“name1”的兄弟姐妹。当我循环遍历它们时,有时循环会到达末尾,但大多数时候它会在兄弟姐妹长度的中间放弃。

始终处于同一位置。我检查了 XML 文件,没有任何区别。我检查了兄弟姐妹之间的地址(在调试器中),并且当循环中断时,下一个兄弟姐妹的地址具有比其他兄弟姐妹更大的偏移量。我不知道为什么会发生这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.