la lecture d'un fichier XML dans un programme C++

J'essaie de lire un fichier XML dans mon programme en C++. Le fichier XML ressemble à quelque chose comme ceci:

<?xml version="1.0" encoding="utf-8"?>
<myprogram>
<configuration>
<window>
<height> 300 </height>
<width> 500 </width>
</window>
</configuration>
</myprogram>

Maintenant je peux regarder le fichier XML et d'essayer de le lire comme ceci:

ifstream in("mydata.xml");

//ignore the <?xml line
in.ignore(200, '\n');

//i know that the first value i want is the window height so i can ignore <myprogram> <configuration> and <window>

//ignore <myprogram>
in.ignore(200, '\n');

//ignore <configuration>
in.ignore(200, '\n');

//ignore <window>
in.ignore(200, '\n');

string s; int height;

//okay, now i have my height
in >> s >> height;

En général, cela semble une mauvaise idée et c'est vraiment limite la façon dont le fichier XML peut être modifié. La solution ci-dessus est très manuel et si quoi que ce soit dans le XML changements, il semble que l'ensemble de la méthode de lecture, il doit être changé.

Est-il une meilleure façon de le faire?

Je havn'pas utilisé le c++ dans les années donc je ne peux pas le nom mais google un analyseur xml en c++ et je suis sûr que vous trouverez quelque chose.

OriginalL'auteur user974967 | 2012-02-27