2017-04-07 1 views
0

XML 및 XML 파서로 작업 한 적이 없으며 OpenGL을 사용하여 모델 애니메이션을위한 COLLADA 문서를 구문 분석하려고했습니다.XML 파일 구문 분석 : 루트 노드에 자식 노드가 없음

나는 tinyxml2 파서를 사용하고 있는데, 내가 그걸 잘못하고있는 것 같습니다.

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

XMLNode* pRoot = _doc.FirstChild(); 

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

저는 Xcode로 작업 중이며 디버깅 모드에서 볼 수 있습니다. 그 pElement는 NULL이고 pRoot에는 자식 노드가 없습니다.

답변

1

tinyxml2에서 모든 것은 요소가 아니라 노드입니다. 따라서 _doc.FirstChild()<COLLADA> 요소 (아마도 XML 헤더의 속성) 이전의 노드로 이동하기 때문에 도움이되지 않습니다. 원하는 내용은 문서의 첫 번째 하위 요소 (예 : <COLLADA>)와 그 아래에있는 첫 번째 <library_geometries> 요소입니다.

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

    return 0; 
} 
: 당신이 위 줄일 내 tinyxml2 extension을 시도 할 수있는 C++ 14분의 11 이상의 경험을 원하는 경우,

#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; 
} 

을 그리고 : 이 시도