안녕하세요. 게임크리에이터가 꿈인.... 지금 공부중인 한 학생입니다.
다름이 아니라 3D 모델을 띄우려고 맥스에서 파일을 XML 형식으로 빼는 것까지는
어떻게 하는지 알겠는데....(김용준님이 쓰신 책이 많은 도움이 되었습니다.)
빼놓은 데이터를 읽을려고 하니깐 XML 파서중 TinyXML 이라는게 있더군요....
그래서 그걸 사용하려고 했는데 도무지 쉽지가 않네요...
인터넷을 보고 사용법을 익혀서 할려고 했는데....
그대로 하니깐 잘 안되더군요...
#include <stdio>
#include <iostream>
#include "tinyxml.h"
#pragma comment (lib,"tinyxmld.lib")
#pragma comment (lib,"tinyxmld_STL.lib")
void main()
{
TiXmlDocument doc;
if( doc.LoadFile("test.xml" ) == false )
{
printf("NONONO\n");
return;
}
else printf("OK!!\n");
TiXmlNode* node = doc.FirstChild("root")->FirstChild("Vertex");
const char* a = node->Value();
printf("%s\n",*a);
printf("XML\n");
}
일단은 테스트로 이런식으로 했는데요...
TiXmlNode* node = doc.FirstChild("root")->FirstChild("Vertex"); 이부분에서
튕기더군요.... 그래서 일단 루트노드부터 읽어보잔 생각에 TiXmlNode* node = doc.FirstChild("root")만
하고 값을 읽으려고 한깐 이번에는
const char* a = node->Value(); 이라인에서 튕기네요....
XML 문법이 틀린것 같지는 않고...
제가 함수를 잘못사용한건가요?
노드 이동하는 것과 값만 읽어오는 것만 알면 어떻게든 될것 같은데..
고수님들의 많은 조언 부탁드립니다.
TinyXML의 사용법...
Moderator: 류광
저도 예전에 김용준님 포멧 사용 할 때 쓴 함수입니다.
무식하게 때려박은 코드에요~ ^^;
Code: Select all
LONG CAniLoader::GetObjectCount(TiXmlNode* &pNode,
LPCSTR pAttribute,
LPCSTR pAttriValue )
{
CHKFALSE(pNode);
LONG iObjectCount=0;
TiXmlElement* tmpElement = 0;
const char *strCompare = NULL;
CHKFALSE(pNode);
pNode = pNode->FirstChild();
if(pAttribute && pAttriValue)
{
while(pNode != NULL)
{
tmpElement = pNode->ToElement();
strCompare = tmpElement->Attribute(pAttribute);
if(strCompare &&
strncmp(strCompare,pAttriValue,strlen(pAttriValue)) == 0)
{
iObjectCount++;
//MessageBox(NULL,boneElement->Attribute("Class"),"!!!",MB_OK);
}
strCompare = NULL;
pNode = pNode->NextSibling();
}
}
else
{
while(pNode != NULL)
{
tmpElement = pNode->ToElement();
iObjectCount++;
pNode = pNode->NextSibling();
}
}
return iObjectCount;
}