Parsin XML-Datei mit pugixml
Hi
Ich will eine XML-Datei als config-Datei, aus der ich lese Parameter für meine Anwendung. Ich stieß auf PugiXML Bibliothek, aber ich habe ein problem mit dem bekommen Werte von Attributen.
Meine XML-Datei sieht, dass
<?xml version="1.0"?>
<settings>
<deltaDistance> </deltaDistance>
<deltaConvergence>0.25 </deltaConvergence>
<deltaMerging>1.0 </deltaMerging>
<m> 2</m>
<multiplicativeFactor>0.7 </multiplicativeFactor>
<rhoGood> 0.7 </rhoGood>
<rhoMin>0.3 </rhoMin>
<rhoSelect>0.6 </rhoSelect>
<stuckProbability>0.2 </stuckProbability>
<zoneOfInfluenceMin>2.25 </zoneOfInfluenceMin>
</settings>
Kombiniere XML-Datei ich diesen code verwenden
void ReadConfig(char* file)
{
pugi::xml_document doc;
if (!doc.load_file(file)) return false;
pugi::xml_node tools = doc.child("settings");
//[code_traverse_iter
for (pugi::xml_node_iterator it = tools.begin(); it != tools.end(); ++it)
{
cout<<it->name() << " " << it->attribute(it->name()).as_double();
}
}
und ich war auch zu benutzen versuchen, diese
void ReadConfig(char* file)
{
pugi::xml_document doc;
if (!doc.load_file(file)) return false;
pugi::xml_node tools = doc.child("settings");
//[code_traverse_iter
for (pugi::xml_node_iterator it = tools.begin(); it != tools.end(); ++it)
{
cout<<it->name() << " " << it->value();
}
}
Attribute werden richtig geladen , aber alle Werte sind gleich 0. Könnte jemand mir sagen, was ich falsch mache ?
- Willkommen ALSO. Haben XML-format korrekt, so stellen Sie sicher, dass es eingerückt mindestens 4 Leerzeichen (oder verwenden Sie den
{}
button im editor)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, dein problem ist, dass Sie erwarten sind der Wert, der gespeichert ist im Knoten selbst, aber es ist wirklich in einem CHILD-text-node. Eine schnelle überprüfung der Dokumentation zeigte, dass müssen Sie möglicherweise
statt
Sind Sie versuchen, um alle Attribute für einen bestimmten Knoten oder wollen Sie die Attribute mit Namen?
Für den ersten Fall, sollten Sie in der Lage sein, um diesen code zu verwenden:
Für den zweiten Fall:
Wenn Sie möchten, dass Aktien nur-text-Daten in den Knoten, wie
Sie brauchen, um machen Sie es wie
Wenn Sie speichern möchten Datentypen, die Sie brauchen, um ein Attribut. Ich denke, was Sie wollen, ist in der Lage sein, um Lesen Sie den Wert direkt?
Beim schreiben der Knoten,
Wenn Sie es Lesen wollen,
Zumindest ist das mein Weg, es zu tun!