Я работаю над проектом на C++ с помощью tinyxml2. У меня проблема с разбором xml, я получаю errorID 10 и сообщение об ошибке «XML_ERROR_PARSING_TEXT» при загрузке файла.tinyxml2 load xml errorID 10
Это следующий XML в вопрос:
<Game>
<Window>
<width>600</width>
<height>500</height>
<background>joliBackgroundDeGael.jpg</background>
</Window>
<Square>
<Mario>
<size>
<width>30</width>
<height>15</height>
</size>
<speedPerFrame>5</speedPerFrame>
<font>
<stop>stopMario.jpg</stop>
<run>runMario.jpg</run>
<jump>jumpMario.jpg</jump>
</font>
</Mario>
</Square>
</Game>
Файл XML является действительным в W3C валидатор. Так что я думаю, что проблема не здесь, но, возможно, здесь:
void parseXML::getDoc()
{
this->doc.LoadFile(this->path);
if (this->doc.ErrorID() != 0)
{
printf("load file=[%s] failed\n", this->doc.GetErrorStr1());
printf("load file=[%s] failed\n", this->doc.GetErrorStr2());
}
}
Когда я смотрю в функции LoadFile с точки останова, я вижу, что загрузка файла такой же, как показано ниже.
Вот полный код:
#include "caracteristique.h"
#include <iostream>
#include <direct.h>
#define GetCurrentDir _getcwd
using namespace tinyxml2;
const char* parseXML::path = "XMLType.xml";
void parseXML::getDoc()
{
this->doc.LoadFile(this->path);
if (this->doc.ErrorID() != 0)
{
printf("load file=[%s] failed\n", this->doc.GetErrorStr1());
printf("load file=[%s] failed\n", this->doc.GetErrorStr2());
}
}
int parseXML::getWindowHeight()
{
if (this->doc.Error())
this->getDoc();
XMLElement *root = this->doc.RootElement();
if (!root)
{
XMLElement *window = root->FirstChildElement("Window");
if (!window)
std::cout << window->FirstChildElement("height")->FirstChild()->ToText() << std::endl;
}
return 0;
}
идея?
Спасибо за вашу помощь,