CCSAXParser 解析 XML 后怎么获取属性的返回?

  • 本帖最后由 koocyton 于 2013-5-8 11:33 编辑 *

即下面代码里的 atts 是怎么获取出来的呢 ?
谢谢,我把 startXmlAttrib 打印出来是乱码
** 不知道怎么处理呢 …


void KMXmlParser::startElement(void *ctx, const char *name, const char **atts)
{
    CC_UNUSED_PARAM(ctx);
    startXmlElement = (char*)name;
    startXmlAttrib = (char*)atts;
}

找到一个,回家慢慢看

cocos2d读取xml文件 : http://blog.csdn.net/q3745960/article/details/8350177


void HXmlParse::startElement(void *ctx,const char* name,const char** atts)  
{  
CC_UNUSED_PARAM(ctx);  
startXmlElement=(char*)name;  
if(!isJumpHeadData){    //跳过数据头(false)  
isJumpHeadData=true;  
root_name=startXmlElement;  
return;  
}  
else{  
  
}  
if(atts){    //有属性值  
int i=0;  
CCString *datastr;  
while(atts*)<span style="white-space:pre">            </span>//atts存有name的属性(单数是属性名,双数是数值)  
{     
datastr=new CCString();  
//   CCString datastr;  
std::string keystr(atts*);<span style="white-space:pre">      </span>//属性名  
datastr->m_sString=atts*;<span style="white-space:pre">      </span>//数值  
CCLOG("atts%d]=%s keystr=%s",i,atts*,keystr.c_str());  
CCLOG("atts%d]=%s data=%s",i+1,atts*,datastr->m_sString.c_str());  
mDic->setObject(datastr,keystr);  //setobject()传进去Object是传引用,所以每次调用都要不同的对象。(要不然会覆盖)  
//   if(mDic->valueForKey())  
//   CCLOG("count=%d",mDic->count());  
std::string teststr("name");  
CCLog("-----key:%s, value:%s",teststr.c_str(),mDic->valueForKey(teststr)->m_sString.c_str());  
i=i+2;  
}  
}  
CCLOG(startXmlElement.c_str());  
} 
*****