gpt4 book ai didi

c++ - 解析 XML 文件 : Root Nodes has no child nodes

转载 作者:行者123 更新时间:2023-11-28 05:12:14 24 4
gpt4 key购买 nike

我从未使用过 XML 和 XML 解析器,我想使用 OpenGL 解析 COLLADA 文档以制作模型动画。

我正在使用 tinyxml2 解析器,似乎我做错了什么。

XMLDocument _doc;
_doc.LoadFile(path.c_str());

XMLNode* pRoot = _doc.FirstChild();

XMLNode* pElement = pRoot->FirstChildElement("library_geometries");

我正在使用 Xcode,在 Debug模式下我可以看到,pElement 为 NULL,pRoot 也没有子节点。

最佳答案

tinyxml2一切都是节点,而不仅仅是元素。所以_doc.FirstChild()没有帮助,因为它会将您带到 <COLLADA> 之前的节点元素(可能是 XML header 中的一个属性)。你想要的是文档中的第一个子元素,即 <COLLADA>其次是第一个 <library_geometries>它下面的元素。试试这个:

#include "tinyxml2.h"
using namespace tinyxml2;
int main()
{
XMLDocument doc;
doc.LoadFile ("collada.xml");

auto colladaElement = doc .FirstChildElement();
auto lib_geomElement = colladaElement -> FirstChildElement("library_geometries");

return 0;
}

而且,如果你想要更多的 C++11/14 体验,你可以试试我的 tinyxml2 extension将上面的内容减少为:

#include "tixml2ex.h"
int main()
{
tinyxml2::XMLDocument doc;
doc.LoadFile ("collada.xml");
auto lib_geomElement = find_element (doc, "COLLADA/library_geometries");

return 0;
}

关于c++ - 解析 XML 文件 : Root Nodes has no child nodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43285461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com