|
3 registered members (AndrewAMD, Grant, Neb),
908
guests, and 6
spiders. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|
LiteC + XML
#414950
01/11/13 00:35
01/11/13 00:35
|
Joined: Nov 2007
Posts: 318 Brasil, Paraná
NeoNeper
OP
Senior Member
|
OP
Senior Member
Joined: Nov 2007
Posts: 318
Brasil, Paraná
|
Is there any solution to load data from xml in LiteC A8 or A7?
Please! Use easy words to be translated. because my English is not very good! Grateful. _______________________________________________________
|
|
|
Re: LiteC + XML
[Re: PadMalcom]
#414977
01/12/13 00:05
01/12/13 00:05
|
Joined: Nov 2007
Posts: 318 Brasil, Paraná
NeoNeper
OP
Senior Member
|
OP
Senior Member
Joined: Nov 2007
Posts: 318
Brasil, Paraná
|
Thanks brother, I'll ask him! (^.^)
Please! Use easy words to be translated. because my English is not very good! Grateful. _______________________________________________________
|
|
|
Re: LiteC + XML
[Re: NeoNeper]
#414983
01/12/13 11:27
01/12/13 11:27
|
Joined: Dec 2009
Posts: 128 China
frankjiang
Member
|
Member
Joined: Dec 2009
Posts: 128
China
|
XMLList* xml_create(char* _string,char* _parentNode){
//去掉回车符
char rep[3];
memset(rep,0,3);
rep[0]=0x0D;
rep[1]=0x0A;
tool_strReplace(_string,rep,"");
//去掉tab键
memset(rep,0,2);
rep[0]=0x09;
tool_strReplace(_string,rep,"");
XMLList* t = Mem_malloc(sizeof(XMLList));
char* p=_string;
int len=strlen(_string);
int i=0;
char c;
char node[_NODE_SIZE];
memset(node,0,_NODE_SIZE);
sprintf(node,"</%s>",_parentNode);
char tstr[_STR_SIZE];
memset(tstr,0,_STR_SIZE);
t->tmp = LStack_create();
while(i<len){
char ch=p[i];
char* str = tstr;
char c[2];
memset(c,0,2);
c[0]=ch;
strcat(str,c);
if(strlen(str)>0&&ch=='>'){
int m;
char ks[_KS_SIZE];
memset(ks,0,_KS_SIZE);
strcat(ks,str);
int sInd=tool_findString(ks,node);
int _len = strlen(node);
if(strlen(ks)!=_len && sInd==0){
tool_strclip(str,_len);
}
m=strcmp(ks,"</");
if(m==1 && strcmp(str,node)!=0){
XMLNode* pNode=Mem_malloc(sizeof(XMLNode));
memset(pNode->nodeData,0,_NODE_SIZE);
char* chs=str;
char* sc=pNode->nodeData;
memset(sc,0,strlen(chs)+1);
memcpy(sc,chs,strlen(chs));
//printf("(%s)",sc);
//printf("address:%p",sc);
LStack_push(t->tmp,pNode);
memset(tstr,0,_STR_SIZE);
str=tstr;
}
}
i++;
}
return t;
}
char* xml_seach(T* t,char* dest,char* ___id,char* find,char* res){
LStackNode* top=t->tmp;
LStackNode* p=top;
while(p.next!=NULL){
p=p.next;
int d=p->data;
XMLNode* pNode = (XMLNode*)d;
char* c =pNode->nodeData;
char temp[_KS_SIZE];
memset(temp,0,_KS_SIZE);
xml_child(temp,c,find);
int i = strlen(temp);
if(i>0){
tool_strtrunc(temp,i-strlen(res));
if(strcmp(temp,res)==0){
xml_child(dest,c,res);
break;
}
}
}
}
void xml_delete(T* t){
LStackNode* top=t->tmp;
LStackNode* p=top;
p=top;
while(p->next!=NULL){
p=p->next;
Mem_free((XMLNode*)(p->data));
}
LStack_delete(t->tmp);
Mem_free(t);
}
void xml_child(char* str,char*c,char* res){
int x=tool_findString(c,res);
strcat(str,c);
tool_strclip(str,x+strlen(res)+2);
int d=tool_findChar(str,'\'');
tool_strtrunc(str,strlen(str)-d);
}
development 3d game is interesting!
|
|
|
Re: LiteC + XML
[Re: frankjiang]
#414984
01/12/13 11:29
01/12/13 11:29
|
Joined: Dec 2009
Posts: 128 China
frankjiang
Member
|
Member
Joined: Dec 2009
Posts: 128
China
|
void exampleXML(){
// data.xml
//
// <itempart name='sdd' itemid='121113' partpos='2'></itempart>
// <itempart name='wuwuw' itemid='122113' partpos='3'></itempart>
STRING* str = str_create("#0");
var file;
file = file_open_read("data.xml"); if(file==0){
ptr_remove(str);
printf("%s don t find file!");
}else{
file_str_readto(file,str,"",0);
file_close(file);
#define SIZE 2048
char _string[SIZE];
memset(_string,0,SIZE);
strcat(_string,str->chars);
ptr_remove(str);
// printf("length:%d",strlen(_string));
//
XMLList* xml=xml_create(_string,"itempart");//
LStackNode* top=xml->tmp;
LStackNode* p=top;
while(p.next!=NULL){
p=p.next;
int d=p->data;
char* c=(char*)d;
char a[SIZE];
memset(a,0,SIZE);
xml_child(a,c,"name");
char b[SIZE];
memset(b,0,SIZE);
xml_child(b,c,"itemid");
//
printf("%s,%s",a,b);
}
char dest[SIZE];
memset(dest,0,SIZE);
xml_seach(xml,dest,"id","122113","partpos");
if(strlen(dest)==0){
printf("not find");
}else{
printf("%s",dest); // 3
}
xml_delete(xml);
}
#undef SIZE
}
Last edited by frankjiang; 01/12/13 11:30.
development 3d game is interesting!
|
|
|
Re: LiteC + XML
[Re: frankjiang]
#414998
01/12/13 16:20
01/12/13 16:20
|
Joined: Nov 2007
Posts: 318 Brasil, Paraná
NeoNeper
OP
Senior Member
|
OP
Senior Member
Joined: Nov 2007
Posts: 318
Brasil, Paraná
|
hello frankjiang! What you posted is not native lite.C.
Could you explain to me what would it be? if you use any DLL?
Please! Use easy words to be translated. because my English is not very good! Grateful. _______________________________________________________
|
|
|
Re: LiteC + XML
[Re: NeoNeper]
#415190
01/14/13 20:14
01/14/13 20:14
|
Joined: Nov 2007
Posts: 318 Brasil, Paraná
NeoNeper
OP
Senior Member
|
OP
Senior Member
Joined: Nov 2007
Posts: 318
Brasil, Paraná
|
Fireball already passed me the files. thank you friends
Please! Use easy words to be translated. because my English is not very good! Grateful. _______________________________________________________
|
|
|
|