Einstellungen für C-Programm aus xml datei lesen.
-
Hallo
Ich habe momentan ein recht komplexes Projekt bekommen mit dem ich gerade zu kämpfen habe. Die Aufgabe besteht zum einen teil daraus, aus einer Datei „settings.xml“ Einstellungen auslesen und diese an das zentrale Modul weiter zu reichen. Bei bedarf können weitere values hinzugefügt werden mit z.B. voltage. Das Programm möchte ich mit C++ unter Linux schreiben und ausführen.
Die XML-Datei sieht folgender maßen aus:
<config> <inverter> <type_number>inverterA_0001<typ_number> <settings> <interface>COM1</interface> <bds>9600-8N1</bds> <value_1s>inputpower</value_1s> <value_2s>outputpower</value_2s> </settings> </inverter> <inverter> <type_number>inverterB_0001<typ_number> <settings> <interface>COM2</interface> <bds>9600-8N1</bds> <value_1>inputpower</value_1> <value_2>outputpower</value_> </settings> </inverter> </config>Meine Idee ist es
1. die Datei zu öffnen
2. nach dem string „<typ_number>“ zu suchen
3. den zähler int typ_number_count um eins erhöhen
4. die Daten hinter dem string zu lesen
5. sie als char mit der bezeichnung inverter_ typ_number_count abzuspeichern bis „</typ_number>“ auftaucht.
6. Dieses soll sich solange wiederholen bis die Datei zu ende ist.Am ende erhalte ich somt zwei Objekte mit folgenden aussehen:
char inverter_1_00011 : „inverterA_0001“;
char interface_1 : „COM2“;
char bds_1 : „9600-8N1“
char value_1s : „inputpower“
char value_2s: „outputpower“
….Gibt es eine besseres vorgehen?
P.S. auf die Hilfe beim Programmieren komme ich dan später nochmal zurück! ;-p
Danke!
-
Ja: einen XML-Parser benutzen (z.B. Xalan oder tinyxml)
-
libxml
-
Oder pugixml oder rapidxml.
-
Habe mich jetzt für libxml entschieden. Ich habe mir dazu das erste Beispiel (C)genommen. Doch beim Kompelieren findet er libxml/xmlmemory.h nicht.
Habe folgende Pakete installiert:
libxml2
libxml2-dev
libxml2-utils
libxml-parder-perl
libxml-twig-perl
libxml-xpath-perl
python-libxml2Fehlt noch ein Packet?
Muss ich noch was beim installieren von libxml beachten?