如何用vc6.0结合sax解析xml文件?

最近我需要用vc6.0结合sax2来 解析 xml文件,看了半天msdn,还是摸不着头脑,各位大虾能不能教教我,最好带有例子. 

see  
   
  MSXML   SAX   C++   Samples  
  http:// www .perfectxml.com/Articles/MSXML/September02.asp

 

/*   This   is   simple   demonstration   of   how   to   use   expat.   This   program  
  reads   an   XML   document   from   standard   input   and   writes   a   line   with   the  
  name   of   each   element   to   standard   output   indenting   child   elements   by  
  one   tab   stop   more   than   their   parent   element.   */  
   
  #include   <stdio.h>  
  #include   <string.h>  
  #include   "xmlparse.h"  
   
  void   startElement(void   *userData,   const   char   *name,   const   char   **atts)  
  {  
  int   i;  
  printf("startElement:");  
  puts(name);  
  for(i=0;atts[i];i+=2)  
  {  
  printf("%s='%s'",atts[i],atts[i+1]);  
  printf("/n");  
  }  
   
  }  
   
  void   endElement(void   *userData,   const   char   *name)  
  {  
  printf("endElement:");  
  puts(name);  
  }  
   
  void   CharacterData(void   *userData,const   char   *s,int   len)  
  {  
  int   i=0;  
  printf("&Auml;&Uacute;&Egrave;&Yacute;:");  
  if(len!=0)  
  {  
  printf("%d/n",len);  
  for(i=0;i<len;i++)  
  {  
  putchar(*(s+i));  
  if(i==len-1)printf("/n");  
  }  
  }  
   
  }  
   
  #define   BUFLEN   1024  
  int   main()  
  {  
  char   buf[BUFLEN]="<stream:stream   to=/"202.197.118.122/"   xmlns=/"jabber:client/"   xmlns:stream=/"http://etherx.jabber.org/streams/"><first></first><second><three>who   am   I?</three></second></stream:stream>";  
  XML_Parser   parser   =   XML_ParserCreate(NULL);  
  int   len=0;  
  int   depth   =   0;  
  int   done=0;  
  XML_SetUserData(parser,   &depth);  
  XML_SetElementHandler(parser,   startElement,   endElement);  
  XML_SetCharacterDataHandler(parser,CharacterData);  
  if   (!XML_Parse(parser,   buf,   strlen(buf),   1))   {  
  fprintf(stderr,  
  "%s   at   line   %d/n",  
  XML_ErrorString(XML_GetErrorCode(parser)),  
  XML_GetCurrentLineNumber(parser));  
  return   1;  
  }  
  XML_ParserFree(parser);  
  return   0;  
  }   
   
用的expat解析器  
  需下载

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值