Попробуй rapidxml для парсинга. Там все предельно просто и быстро. Вот пример:
Код
#include <iostream>
#include "rapidxml/rapidxml.hpp"
#include "rapidxml/rapidxml_utils.hpp"
using namespace rapidxml;
using namespace std;
int main(void)
{
xml_document<> doc; //create xml_document object
file<> xmlFile("sample.xml"); //open file
doc.parse<0>(xmlFile.data()); //parse the contents of file
for(xml_node<>*n = doc.first_node();n;n = n->next_sibling())
{
cout << n->name() << "\t" << n->value() <<"\n";
}
getchar();
return 0;
}