मैंने अभी रेडएक्सएमएल का उपयोग शुरू किया क्योंकि इसकी सिफारिश की गई थी। अभी कई भाई बहनों पर फिर से शुरू करने के लिए मैं यह करता हूं:सी ++ rapidxml node_iterator उदाहरण?
//get the first texture node
xml_node<>* texNode = rootNode->first_node("Texture");
if(texNode != 0){
string test = texNode->first_attribute("path")->value();
cout << test << endl;
}
//get all its siblings
while(texNode->next_sibling() != 0){
string test = texNode->first_attribute("path")->value();
cout << test << endl;
texNode = texNode->next_sibling();
}
मूल परीक्षण के रूप में और यह ठीक काम करता है। वैसे भी, मैं नोड_इटरेटर में आया जो मेरे लिए ऐसा करने के लिए एक अतिरिक्त इटरेटर वर्ग प्रतीत होता है। वैसे भी, मुझे इसका उपयोग करने के तरीके पर कोई उदाहरण नहीं मिला, इसलिए मैं सोच रहा था कि कोई मुझे दिखा सकता है :)
धन्यवाद!
rapidxml के बारे में सावधान रहें क्योंकि यह कोई सार्थक अच्छी तरह से गठबंधन जांच नहीं करता है ... –
उपरोक्त उदाहरण यह करने का सही तरीका है। यदि आप अपने टाइम लूप की शुरुआत में texNode-> next_sibling()! = 0 के लिए परीक्षण करते हैं, तो जब आप अंतिम भाई पर जाते हैं और texNode = texNode-> next_sibling() सेट करते हैं; जबकि लूप के अंत में, उस टेक्स्ट नोड में अगला_सिबल नहीं होगा क्योंकि यह आखिरी है। इसके लिए जबकि लूप उस शुरुआती भाई की वजह से आखिरी भाई को कभी संसाधित नहीं करेगा। – NSDestr0yer