Page 1 of 1

[ISE] XML scanning

Posted: Sun Feb 17, 2013 5:48 pm
by Flipper
Voor inleiding software engineering moeten we wat vertrouwd geraken met de xml-parser, nu heb ik daar even een klein probleempje: ik probeer namelijk de xml-file te scannen op een specifieke node, maar in plaats van de hele file door te scannen, heb ik de indruk dat er gescand wordt tot de 1e verschijning van de gezochte node:

Mijn code voor scanning:

Code: Select all


std::cout << "All floats found: " << std::endl;
for (TiXmlElement* node=root->FirstChildElement("float"); node != NULL; node->NextSiblingElement("float") ) {
if (node->Attribute("value") != NULL) {
std::cout << node->Attribute("value") << std::endl;
}
continue;
}
Mijn xml file:

Code: Select all


<?xml version"1.0" ?>
<root>
<ignore value="Hello World!" />
<float value=42.0/>
<ignore />
<float value=42.1/>
<float value=42.2/>
</root>
En genereert als output:

Code: Select all


All floats found:
42.0
En ik wilde eigenlijk:

Code: Select all


All floats found:
42.0
42.1
42.2
Iemand een idee?
:|

Re: [ISE] XML scanning

Posted: Sun Feb 17, 2013 6:00 pm
by Flipper
Ah nvm, found it out why :idea: :facepalm:

Re: [ISE] XML scanning

Posted: Mon Feb 18, 2013 1:01 am
by Robbe
Flipper wrote:Ah nvm, found it out why :idea: :facepalm:
Care to share with the rest of the world? Niets erger dan EXACT uw probleem te vinden en dan die post tegen te komen...

Re: [ISE] XML scanning

Posted: Mon Feb 18, 2013 1:30 am
by Fristi
Image

Re: [ISE] XML scanning

Posted: Wed Feb 20, 2013 3:13 pm
by JR
Die continue; als laatste statement in de for vind ik wel intrigerend

Re: [ISE] XML scanning

Posted: Wed Feb 20, 2013 4:34 pm
by Flipper
Robbe wrote:
Flipper wrote:Ah nvm, found it out why :idea: :facepalm:
Care to share with the rest of the world? Niets erger dan EXACT uw probleem te vinden en dan die post tegen te komen...
Fristi wrote:Image
Haha, oeps :P

Nee, het stomme is dat de code die ik in het begin van dit topic heb aangegeven, volledig correct is, deze werkt dus wel degelijk. De code waar ik wel een probleem mee had was:

Code: Select all


std::cout << "All floats found: " << std::endl;
for (TiXmlElement* node=root->FirstChildElement("float"); node != NULL; node->NextSibling("float") ) {
if (node->Attribute("value") != NULL) {
std::cout << node->Attribute("value") << std::endl;
}
continue;
}
Het zat em in de state-update wanneer de for-body is uitgevoerd: hierboven schreef ik dus

Code: Select all

node->NextSibling("float")
in plaats van de juiste:

Code: Select all

node->NextSiblingElement
Wat verder bleek dat TiXmlElement een derived class was van TiXmlNode, waardoor de compiler geen problemen had met compilen.

strange, u code goed typen op het forum, maar niet in u prog zelf.. :facepalm:
JR wrote:Die continue; als laatste statement in de for vind ik wel intrigerend
Hoezo?

Re: [ISE] XML scanning

Posted: Wed Feb 20, 2013 4:40 pm
by Flipper
Oh en ik had ook problemen met het doorzoeken in text nodes, volgens de website zou je daarvoor de functie

Code: Select all

node->ToText()
zijn, dit is volgens mij echter een foutje, want bij mij werkt dat totaal niet, wat bij mij wel werkte was

Code: Select all

node->getText()
geen idee of dat bij iemand anders ook zo is, of doe ik iets verkeerd? :?

Re: [ISE] XML scanning

Posted: Thu Feb 21, 2013 5:05 pm
by djgl3nn
Flipper wrote:
JR wrote:Die continue; als laatste statement in de for vind ik wel intrigerend
Hoezo?
Wat is het nut van die continue ?

Re: [ISE] XML scanning

Posted: Thu Feb 21, 2013 6:10 pm
by Joachimvdh
uw loop herhaalt zich ook zonder continue hoor :p

Re: [ISE] XML scanning

Posted: Fri Feb 22, 2013 10:10 am
by Flipper
hmm, gewoonte van me om die continue steeds op te zetten, moet ik toch eens afleren :P