Когда я пытаюсь проанализировать простой XML-файл с использованием инфраструктуры RapidXML, он выдает ошибку parse_error по следующей причине: «ожидается <».Сейчас я практически впервые пишу XML-код, поэтому это может быть глупая синтаксическая ошибка, в этом случае потерпите меня :) Это мой <strong>xmlParser.h :
#ifndef __XML_PARSER_H__
#define __XML_PARSER_H__
#include "rapidxml.hpp"
#include "windowUtil.h"
class XmlParser
{
public:
bool parse(char *xml)
{
try
{
doc.parse<0>(xml);
}
catch(rapidxml::parse_error &e)
{
msg_box(NULL, e.what(), "RapidXML exception!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
return false;
}
return true;
}
char* get_first_node_name()
{
return doc.first_node()->name();
}
private:
rapidxml::xml_document<> doc;
};
#endif
А вот как он называется и используется:
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow)
{
XmlParser xmlParser;
WindowFramework *window = create_window(&framework, NULL, NULL, "GAME");
if(!init_window(window, true, true))
return kill(1);
if(!xmlParser.parse("./layouts/login_gui.xml"))
return kill(1);
framework.main_loop();
return kill(0);
}
login_gui.xml :
<?xml version="1.0"?>
<button>
<text>EXIT</text>
<buttonready>button.png</buttonready>
<buttonrollover>button_active.png</buttonrollover>
<buttonpressed>button_pressed.png</buttonpressed>
<buttoninactive>button_inactive.png</buttoninactive>
</button>