чтение файла XML в программе на C ++

Я пытаюсь прочитать XML-файл в моей программе на C ++. XML-файл выглядит примерно так:

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

Прямо сейчас я могу посмотреть на XML-файл и попытаться прочитать его так:

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;

В целом это кажется плохой идеей и действительно ограничивает способы изменения XML-файла. . Вышеупомянутое решение очень ручное, и если что-то в XML изменится, кажется, что придется изменить весь метод его чтения.

Есть ли лучший способ сделать это?

11
задан user974967 27 February 2012 в 22:18
поделиться