Estoy tratando de leer un archivo XML en mi programa C++. El archivo XML es como la siguiente:leyendo un archivo XML en un programa C++
<?xml version="1.0" encoding="utf-8"?>
<myprogram>
<configuration>
<window>
<height> 300 </height>
<width> 500 </width>
</window>
</configuration>
</myprogram>
En este momento me puede mirar en el archivo XML y tratar de leer así:
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 general esto parece una mala idea y lo que realmente limita cómo se puede modificar el archivo XML. La solución anterior es muy manual y si algo cambia en XML, parece que todo el método de lectura debería cambiarse.
¿Hay una mejor manera de hacerlo?
No he usado C++ en años, así que no puedo nombrar uno, pero google un analizador xml para C++ y estoy seguro de que encontrará algo. – Dan675