Parser facilement un fichier XML
Bonjour à tous,
Je crée un programme en C++ dont les données seront initialisées grâce à un fichier XML de la forme suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<writearea>
<value></value>
<x>5</x>
<y>5</y>
<width>490</width>
<height>50</height>
<borderSize>1</borderSize>
<borderColor>#000000</borderColor>
<backgroundColor>#FFFFFF</backgroundColor>
<fontColor>#000000</fontColor>
<fontSize>12</fontSize>
</writearea>
<key type="completion">
<code>comp1</code>
<value type="text"></value>
<x>5</x>
<y>60</y>
<width></width>
<height>50</height>
<borderSize>1</borderSize>
<borderColor>#000000</borderColor>
<backgroundColor>#E2B0FE</backgroundColor>
<fontColor>#000000</fontColor>
<fontSize>12</fontSize>
<faceImg></faceImg>
</key>
<key type="letter">
<code>a</code>
<value type="text">A</value>
<x>5</x>
<y>170</y>
<width>50</width>
<height>50</height>
<borderSize>1</borderSize>
<borderColor>#000000</borderColor>
<backgroundColor>#B0FECD</backgroundColor>
<fontColor>#000000</fontColor>
<fontSize>12</fontSize>
<faceImg></faceImg>
</key> |
J'aimerais savoir s'il existe une librairie qui permet d'extraire ces données facilement ?
Notamment, je voudrais pouvoir savoir si la balise extérieure est un <writearea> ou un <key>, pouvoir récupérer les attributs des items, et pouvoir, pour un item (par exemple <key>), récupérer les différents éléments qui le composent. En gros avec une fonction de ce style :
Code:
1 2 3 4 5
|
if (baliseSuivante == "key" && baliseSuivante.type == "letter") {
code = baliseSuivante.get("value");
...
} |
ou encore :
Code:
1 2 3 4 5 6 7 8 9
|
if (baliseSuivante == "key" && baliseSuivante.type == "letter") {
Pour toutes les sous balises {
if (sousBaliseSuivante == "code") {
code = valeur_entre_les_balsies;
}
...
}
} |
Quelle librairie me conseilleriez-vous pour optimiser ça ?
Merci d'avance !