-1

我已经浏览了数十篇关于此的帖子,但没有一个能解决我的问题。我有这个 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

不知道为什么,文件是如此简单。任何帮助表示赞赏,谢谢

4

1 回答 1

1

实际的错误消息正在向您解释问题:XML_ERROR_MISMATCHED_ELEMENT.

这可能只是您的疏忽,或者您需要熟悉XML 语法

如果您使用Microsoft Visual Studio打开您的 XML 文件,它会标记您遇到的任何语法错误。例如:

XML 语法错误

更重要的是,一个错误随后会向下级联以引入其他语法错误。如你看到的:

XML 语法错误

当您将鼠标悬停在</scene>它上面时,它会明确指出 </flag>缺少关闭元素。

在 Visual Studio 中编写测试 XML 数据的另一个好处是它会自动为您创建结束标记,这样您就可以防止出现此错误。

于 2020-03-14T20:46:37.647 回答