Не могу открыть файл xml с помощью tinyxml2 - PullRequest
0 голосов
/ 04 марта 2020

Я просмотрел десятки сообщений об этом, и ни одно из них не устранило мою проблему. У меня есть xml файл.

<?xml version="1.0" encoding="UTF-8"?>
<scene>
 <file>sphere.d3<file/>
</scene>

У меня есть очень простая функция, которая сейчас просто открывает файл

string* loadXML(string file){

    XMLDocument xml_doc;
    xml_doc.LoadFile("/home/pedro/Documents/CG/TP/scene.xml");
  if(xml_doc.ErrorID() != 0) {
        cout << xml_doc.ErrorName();
      return nullptr;
      }

    return nullptr;

}

Однако, он выплевывает

XML_ERROR_MISMATCHED_ELEMENT

Понятия не имею, почему файл так прост. Любая помощь приветствуется, спасибо

1 Ответ

1 голос
/ 14 марта 2020

Фактическое сообщение об ошибке объясняет вам проблему: XML_ERROR_MISMATCHED_ELEMENT.

Это может быть просто упущением с вашей стороны, или вам необходимо ознакомиться с XML Синтаксис .

Если вы используете Microsoft Visual Studio , чтобы открыть файл XML, он будет отмечать любые синтаксические ошибки, которые у вас есть. Например:

XML Syntax error

Более того, одна ошибка затем распространяется вниз, чтобы ввести другие синтаксические ошибки. Как вы можете видеть:

XML Syntax error

Когда вы наводите указатель мыши на </scene>, он прямо указывает, что закрывающий элемент </flag> отсутствует.

Другое преимущество написания тестовых данных XML в Visual Studio заключается в том, что он автоматически создаст закрывающие теги , чтобы вы могли предотвратить эту ошибку.

...