ZT:http://www.mobpub.net/archiver/?tid-28.html
Symbianѧϰ±Ê¼Ç(15)——½âÎöXMLÎļþ(ÉÏ)
½ñÌìÏë·ÖÏíµÄÊÇÈçºÎÔÚSymbianƽ̨ÉϽâÎöXMLÎļþ£¬²»ÐèÒªµÚÈý·½µÄ¶«Î÷£¬SymbianÒѾΪÎÒÃÇÌṩÁËÕâ¸öÀàCParser¡£
ÍøÉÏÒ²ÓÐÕâ·½ÃæµÄ×ÊÁÏ£¬½¨Òé²Î¿¼£º
[url]http://wiki.forum.nokia.com/index.php/How_to_parse_XML_file_using_CParser_class[/url]
²»¹ý£¬Òª×¢ÒâµÄÊÇSymbianÖеÄCParserÊÇ»ùÓÚSAX·½Ê½À´½âÎöµÄÒ²¾ÍÊÇ˵ËüÊÇ»ùÓÚʼþÁ÷·½Ê½£¬¶ÔÓÚSAX£¬Èç¹û×ö¹ýJAVA¿ª·¢µÄÒ»°ã²»»áİÉúÁË¡£ÓëDOMÏà±ÈSAX·½Ê½ÔÚ²Ù×÷ÉÏ»áÓеãÂé·³¶øÇÒÏÔµÃûÄÇôºÃÀí½â¡£
¼òÒª±È½Ïһϰɣ¬DOMÊǽ«XMLÔÚÄÚ´æÖÐÕ¹¿ª³ÉÒ»¸öÊ÷µÄÄ£ÐÍ£¬ÎÒÃÇ¿ÉÒÔ·½±ãµØ·ÃÎÊËüµÄÿ¸ö×ӽڵ㣬¿É¶Á¿Éд¡£µ«ÊÇSAXÄØ£¿ÎÒÃÇÖ»ÄÜͨ¹ýÒ»¸öµ¥ÏòÎı¾Á÷È¥½âÎöXML£¬ÔÚ¹ý³ÌÖÐÓжà¸öʼþ»Øµ÷£¨¿ªÊ¼Ä³¸öÔªËØ´¦Àí¡¢½áÊøÄ³¸öÔªËØ´¦ÀíµÈµÈ£©£¬ËüÊǵ¥ÏòÖ»¶ÁµÄ¡£
ÏÂÃæÎÒÃÇÀ´Ïêϸ˵Ã÷Ò»ÏÂÈçºÎʵÏÖ°É¡£
Ê×ÏÈ£¬ÎÒÃǽ¨Á¢Ò»¸ö½âÎöÆ÷ÅÉÉúÓÚCActive£¬ÓÉËü¸ºÔðÕû¸ö½âÎö¹ý³Ì£¨ÒòΪÕâÊÇÒ»¸öÒì²½²Ù×÷£©¡£
#include <xmlparser.h>
#include <xmlcontenthandler.h>
using namespace Xml;
class MXMLHandlerObserver
...{
public:
& ......
XMLÖÐÒ»ÖÖÀ©Õ¹µÄ±ê¼ÇÓïÑÔ,Ëü¾ßÓкܺõÄÀ©Õ¹ÐÔ±ê¼Ç.±¾ÎÄͨ¹ýXMLʵÏÖ²»Í¬Êý¾Ý¿âµÄ¶¨Òå,ʵÏÖ¶ÔXMLÊý¾Ý¿âµÄ·ÃÎʺÍÒì¹¹Êý¾Ý¿âÖ®¼äµÄ»¥·Ã.
¡¡¡¡¹Ø¼ü´Ê:XML Òì¹¹Êý¾Ý¿â ÐÅÏ¢½»»» Êý¾Ý¿â·ÃÎÊ
1 ÒýÑÔ
¡¡¡¡XML(Extensible Markup Language)ËüÊÇÓÉW3C×éÖ¯ÓÚ1998Äê2ÔÂ
ÖÆ¶¨µÄÒ»ÖÖͨÓÃÓïÑԹ淶,ÊÇSGML µÄ¼ò»¯×Ó¼¯,רÃÅΪ Web Ó¦ÓóÌÐò¶øÉè¼Æ.XML×÷ΪһÖÖ¿ÉÀ©Õ¹ÐÔ±ê¼ÇÓïÑÔ,Æä×ÔÃèÊöÐÔʹÆä·Ç³£ÊÊÓÃÓÚ²»Í¬Ó¦ÓüäµÄÊý¾Ý½»»»,¶øÇÒÕâÖÖ½»»»ÊDz»ÒÔÔ¤Ïȹ涨һ×éÊý¾Ý½á¹¹¶¨ÒåΪǰÌá.XML×î´óµÄÓŵãÊÇËü¶ÔÊý¾ÝÃèÊöºÍÊý¾Ý´«ËÍÄÜÁ¦,Òò´Ë¾ß±¸ºÜÇ¿µÄ¿ª·ÅÐÔ.ΪÁËʹ»ùÓÚXMLµÄÒµÎñÊý¾Ý½»»»³ÉΪ¿ÉÄÜ,¾Í±ØÐëʵÏÖÊý¾Ý¿âµÄXMLÊý¾Ý´æÈ¡,²¢ÇÒ½«XMLÊý¾ÝͬӦÓóÌÐò¼¯³É,½ø¶øÊ¹Ö®Í¬ÏÖÓеÄÒµÎñ¹æÔòÏà½áºÏ.¿ª·¢»ùÓÚ XMLµÄ¶¯Ì¬Ó¦ÓÃ,È綯̬ÐÅÏ¢·¢²¼¡¢¶¯Ì¬Êý¾Ý½»»»µÈ,ǰÌáÊDZØÐëÓÐÖ§³ÖXMLµÄÊý¾Ý¿âÖ§³Ö. XML ÌṩÃèÊö²»Í¬ÀàÐÍÊý¾ÝµÄ±ê×¼¸ñʽ -- ÀýÈç:Ô¼»á¼Ç¼¡¢¹ºÂò¶¨µ¥¡¢Êý¾Ý¿â¼Ç¼¡¢Í¼ÐΡ¢ÉùÒôµÈ -- ²¢ÇÒ¿ÉÒ»Ö¶øÕýÈ·µØ½âÂë¡¢¹ÜÀíºÍÏÔʾÐÅÏ¢. XMLÒ»¿ªÊ¼¾Í½¨¹¹ÔÚUnicode(ͳһÂë)Ö®ÉÏ,Ìá¹ ......
ÕâÆªÎÄÕºܳ¤£¬×ªÔØÏÂÀ´¹©×Ô¼ºÂýÂýѧϰ¡£
±à³ÌÐÞÑø £¨×÷Õߣº³Â𩣩
————
ʲôÊǺõijÌÐòÔ±£¿ÊDz»ÊǶ®µÃºÜ¶à¼¼Êõϸ½Ú£¿»¹ÊǶ®µ×²ã±à³Ì£¿»¹ÊDZà³ÌËٶȱȽϿ죿
ÎÒ¾õµÃ¶¼²»ÊÇ¡£¶ÔÓÚһЩ¼¼Êõϸ½ÚÀ´ËµºÍµ×²ãµÄ¼¼Êõ£¬Ö»Òª¿´°ïÖú£¬²é×ÊÁϾÍÄÜÕÒµ½£¬¶Ô
ÓÚËٶȿ죬ֻҪ±àµÃ¶àÒ²¾ÍÊìÄÜÉúÇÉÁË¡£
ÎÒÈÏΪºÃµÄ³ÌÐòÔ±Ó¦¸ÃÓÐÒÔϼ¸·½ÃæµÄËØÖÊ£º
1¡¢ÓÐרÑо«Éñ£¬ÇÚÑ§ÉÆÎÊ¡¢¾ÙÒ»·´Èý¡£
2¡¢»ý¼«ÏòÉϵÄ̬¶È£¬Óд´ÔìÐÔ˼ά¡£
3¡¢ÓëÈË»ý¼«½»Á÷¹µÍ¨µÄÄÜÁ¦£¬ÓÐÍŶӾ«Éñ¡£
4¡¢Ç«Ðé½÷É÷£¬½ä½¾½äÔï¡£
5¡¢Ð´³öµÄ´úÂëÖÊÁ¿¸ß¡£°üÀ¨£º´úÂëµÄÎȶ¨¡¢Ò×¶Á¡¢¹æ·¶¡¢Ò×ά»¤¡¢×¨Òµ¡£
ÕâЩ¶¼ÊdzÌÐòÔ±µÄÐÞÑø£¬ÕâÀïÎÒÏë̸̸¡°±à³ÌÐÞÑø¡±£¬Ò²¾ÍÊÇÉÏÊöÖеĵÚ5µã¡£ÎÒ¾õµÃ£¬Èç
¹ûÎÒÒªÁ˽âÒ»¸ö×÷Õߣ¬ÎһῴËûËùдµÄС˵£¬Èç¹ûÎÒÒªÁ˽âÒ»¸ö»¼Ò£¬ÎһῴËûËù»µÄͼ
»£¬Èç¹ûÎÒÒªÁ˽âÒ»¸ö¹¤ÈË£¬ÎһῴËûËù×ö³öÀ´µÄ²úÆ·£¬Í¬Ñù£¬Èç¹ûÎÒÒªÁ˽âÒ»¸ö³ÌÐòÔ±
£¬ÎÒÏëÊ×ÏÈÎÒ×îÏë¿´µÄ¾ÍÊÇËûµÄ³ÌÐò´úÂ룬³ÌÐò´úÂë¿ÉÒÔ¿´³öÒ»¸ö³ÌÐòÔ±µÄËØÖʺÍÐÞÑø£¬
³ÌÐò¾ÍÏñÒ»¸ö×÷Æ·£¬ÓÐËØÖÊÓÐÐÞÑøµÄ³ÌÐòÔ±µÄ×÷Æ·±ØÈ»ÊÇһͼ¾«ÃÀµÄͼ»£¬Ò»Ê×ÃÀÃîµÄ¸è
Çú£¬Ò»±¾ÉÍÐÄÔÃÄ ......
ÕâÆªÎÄÕºܳ¤£¬×ªÔØÏÂÀ´¹©×Ô¼ºÂýÂýѧϰ¡£
±à³ÌÐÞÑø £¨×÷Õߣº³Â𩣩
————
ʲôÊǺõijÌÐòÔ±£¿ÊDz»ÊǶ®µÃºÜ¶à¼¼Êõϸ½Ú£¿»¹ÊǶ®µ×²ã±à³Ì£¿»¹ÊDZà³ÌËٶȱȽϿ죿
ÎÒ¾õµÃ¶¼²»ÊÇ¡£¶ÔÓÚһЩ¼¼Êõϸ½ÚÀ´ËµºÍµ×²ãµÄ¼¼Êõ£¬Ö»Òª¿´°ïÖú£¬²é×ÊÁϾÍÄÜÕÒµ½£¬¶Ô
ÓÚËٶȿ죬ֻҪ±àµÃ¶àÒ²¾ÍÊìÄÜÉúÇÉÁË¡£
ÎÒÈÏΪºÃµÄ³ÌÐòÔ±Ó¦¸ÃÓÐÒÔϼ¸·½ÃæµÄËØÖÊ£º
1¡¢ÓÐרÑо«Éñ£¬ÇÚÑ§ÉÆÎÊ¡¢¾ÙÒ»·´Èý¡£
2¡¢»ý¼«ÏòÉϵÄ̬¶È£¬Óд´ÔìÐÔ˼ά¡£
3¡¢ÓëÈË»ý¼«½»Á÷¹µÍ¨µÄÄÜÁ¦£¬ÓÐÍŶӾ«Éñ¡£
4¡¢Ç«Ðé½÷É÷£¬½ä½¾½äÔï¡£
5¡¢Ð´³öµÄ´úÂëÖÊÁ¿¸ß¡£°üÀ¨£º´úÂëµÄÎȶ¨¡¢Ò×¶Á¡¢¹æ·¶¡¢Ò×ά»¤¡¢×¨Òµ¡£
ÕâЩ¶¼ÊdzÌÐòÔ±µÄÐÞÑø£¬ÕâÀïÎÒÏë̸̸¡°±à³ÌÐÞÑø¡±£¬Ò²¾ÍÊÇÉÏÊöÖеĵÚ5µã¡£ÎÒ¾õµÃ£¬Èç
¹ûÎÒÒªÁ˽âÒ»¸ö×÷Õߣ¬ÎһῴËûËùдµÄС˵£¬Èç¹ûÎÒÒªÁ˽âÒ»¸ö»¼Ò£¬ÎһῴËûËù»µÄͼ
»£¬Èç¹ûÎÒÒªÁ˽âÒ»¸ö¹¤ÈË£¬ÎһῴËûËù×ö³öÀ´µÄ²úÆ·£¬Í¬Ñù£¬Èç¹ûÎÒÒªÁ˽âÒ»¸ö³ÌÐòÔ±
£¬ÎÒÏëÊ×ÏÈÎÒ×îÏë¿´µÄ¾ÍÊÇËûµÄ³ÌÐò´úÂ룬³ÌÐò´úÂë¿ÉÒÔ¿´³öÒ»¸ö³ÌÐòÔ±µÄËØÖʺÍÐÞÑø£¬
³ÌÐò¾ÍÏñÒ»¸ö×÷Æ·£¬ÓÐËØÖÊÓÐÐÞÑøµÄ³ÌÐòÔ±µÄ×÷Æ·±ØÈ»ÊÇһͼ¾«ÃÀµÄͼ»£¬Ò»Ê×ÃÀÃîµÄ¸è
Çú£¬Ò»±¾ÉÍÐÄÔÃÄ ......
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <errno.h>
#include <string.h>
#define MAX 1024
int get_file_count(char *root)
{
DIR *dir;
struct dirent * ptr;
int total = 0;
char path[MAX];
dir = opendir(root); /* ´ò¿ªÄ¿Â¼*/
if(dir == NULL)
{
perror("fail to open dir");
exit(1);
}
errno = 0;
while((ptr = readdir(dir)) != NULL)
{
//˳Ðò¶Áȡÿһ¸öĿ¼Ï
//Ìø¹ý“..”ºÍ“.”Á½¸öĿ¼
if(strcmp(ptr->d_name,".") == 0 || strcmp(ptr->d_name,"..") == 0)
{
continue;
}
//printf("%s%s\n",root,ptr->d_name);
//Èç¹ûÊÇĿ¼£¬ÔòµÝ¹éµ÷Óà get_file_countº¯Êý
if(ptr->d_type == DT_DIR)
{
sprintf(path,"%s%s/",root,ptr->d_name);
//pr ......
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <errno.h>
#include <string.h>
#define MAX 1024
int get_file_count(char *root)
{
DIR *dir;
struct dirent * ptr;
int total = 0;
char path[MAX];
dir = opendir(root); /* ´ò¿ªÄ¿Â¼*/
if(dir == NULL)
{
perror("fail to open dir");
exit(1);
}
errno = 0;
while((ptr = readdir(dir)) != NULL)
{
//˳Ðò¶Áȡÿһ¸öĿ¼Ï
//Ìø¹ý“..”ºÍ“.”Á½¸öĿ¼
if(strcmp(ptr->d_name,".") == 0 || strcmp(ptr->d_name,"..") == 0)
{
continue;
}
//printf("%s%s\n",root,ptr->d_name);
//Èç¹ûÊÇĿ¼£¬ÔòµÝ¹éµ÷Óà get_file_countº¯Êý
if(ptr->d_type == DT_DIR)
{
sprintf(path,"%s%s/",root,ptr->d_name);
//pr ......
Linux C + + Training
Syllabus
________________________________________
1, Linux Operating System
System Environment: Ubuntu GNU / Linux, RedHat Linux AS5,
FreeBSD
Course Requirements: proficient use of commonly used Linux
/ UNIX commands.
Time: 1 week.
________________________________________
2, Linux C + + development environment to build, develop
the use of tools
Related content: vi, GCC, GDB, Make, CVS, Subversion,
Eclipse CDT
Course requirements:
Skilled use of vi text
editor;
Skilled use of GCC tool chain for compiling, debugging,
build an executable file or shared library / static library;
Skilled preparation of Makefile;
Skilled configuration, using two kinds of CVS and
Subversion version control tool;
Skilled configuration, use the Eclipse CDT development
tools.
Time: 1 week
________________________________________
3, C + + language
C + + is a
multi-paradigm programming language, com ......
Linux C + + Training
Syllabus
________________________________________
1, Linux Operating System
System Environment: Ubuntu GNU / Linux, RedHat Linux AS5,
FreeBSD
Course Requirements: proficient use of commonly used Linux
/ UNIX commands.
Time: 1 week.
________________________________________
2, Linux C + + development environment to build, develop
the use of tools
Related content: vi, GCC, GDB, Make, CVS, Subversion,
Eclipse CDT
Course requirements:
Skilled use of vi text
editor;
Skilled use of GCC tool chain for compiling, debugging,
build an executable file or shared library / static library;
Skilled preparation of Makefile;
Skilled configuration, using two kinds of CVS and
Subversion version control tool;
Skilled configuration, use the Eclipse CDT development
tools.
Time: 1 week
________________________________________
3, C + + language
C + + is a
multi-paradigm programming language, com ......
º¯ÊýÃûÓ뺯ÊýÖ¸Õë
Ò» ͨ³£µÄº¯Êýµ÷ÓÃ
Ò»¸öͨ³£µÄº¯Êýµ÷ÓõÄÀý×Ó£º
//×ÔÐаüº¬Í·Îļþ
void MyFun(int x); //´Ë´¦µÄÉêÃ÷Ò²¿Éд³É£ºvoid MyFun( int );
int main(int argc, char* argv[])
{
MyFun(10); //ÕâÀïÊǵ÷ÓÃMyFun(10);º¯Êý
return 0;
}
void MyFun(int x) //ÕâÀﶨÒåÒ»¸öMyFunº¯Êý
{
printf(“%d\n”,x);
}
Õâ¸öMyFunº¯ÊýÊÇÒ»¸öÎÞ·µ»ØÖµµÄº¯Êý£¬Ëü²¢²»Íê³ÉʲôÊÂÇé¡£ÕâÖÖµ÷Óú¯ÊýµÄ¸ñʽÄãÓ¦¸ÃÊǺÜÊìϤµÄ°É£¡¿´Ö÷º¯ÊýÖе÷ÓÃMyFunº¯ÊýµÄÊéд¸ñʽ£º
MyFun(10);
ÎÒÃÇÒ»¿ªÊ¼Ö»ÊÇ´Ó¹¦ÄÜÉÏ»òÕß˵´ÓÊýѧÒâÒåÉÏÀí½âMyFunÕâ¸öº¯Êý£¬ÖªµÀMyFunº¯ÊýÃû´ú±íµÄÊÇÒ»¸ö¹¦ÄÜ£¨»òÊÇ˵һ¶Î´úÂ룩¡£
Ö±µ½——
ѧϰµ½º¯ÊýÖ¸Õë¸ÅÄîʱ¡£ÎҲŲ»µÃ²»ÔÚ˼¿¼£ºº¯ÊýÃûµ½µ×ÓÖÊÇʲô¶«Î÷ÄØ£¿
£¨²»ÒªÒÔΪÕâÊÇûÓÐʲôÒâÒåµÄÊÂàÞ£¡ºÇºÇ£¬¼ÌÐøÍùÏ¿´Äã¾ÍÖªµÀÁË¡££©
......