Это то, что я чувствую, должно быть легко, но после многих часов я все еще не могу понять это. Я попытался найти его в Google, но, похоже, мой мозг хочет задать вопрос только в трех строчках объяснения, что на самом деле не работает с Google. Не стесняйтесь редактировать, если у вас есть лучший способ сформулировать это.
У меня есть файл xml, скажите это:
<tag1>
<tag2>
<tag3>
...
</tag3>
</tag2>
</tag1>
В документе может быть много тегов tag1, tag2 и tag3 на каждого родителя.
Используя pugi xml для c ++, я хочу выполнить действие на выбранном узле. Вот псевдокод того, что я хотел бы выполнить sh, но я знаю, что это неправильно и не совсем выполнимо.
for(pugi::xml_node tag1 : doc->child("tag1").children()){
//Do something with tag1
for(pugi::xml_node tag2 : doc->child("tag1").child("tag2").children()){
//Do something with tag2
for(pugi::xml_node tag3 : doc->child("tag1").child("tag2").child("tag3").children()){
//Do something with tag3
}
}
}
Просто посмотрите на это , довольно просто найти то, что не будет работать ... Мне нужно иметь возможность взаимодействовать с do c .child (). child (). child (). child () ..... внутри л oop. Необходимость добавления .child () для каждой итерации не позволяет мне делать что-то рекурсивное, такое как:
void loopXNestedTimes(int n){
if(n==0) return;
// Do my stuff
loopXNestedTimes(n-1);
}
Любая подсказка, как бы я go об этом? Я использую Qt и c ++, но все еще изучаю оба, так что, возможно, мне не хватает языковых возможностей, которые позволяют это.