我需要获取包含许多元素的xml文件的属性名称和值。
在类中捕获属性值的最佳方法是什么?
我必须遵循startelement处理程序的代码:
start(void *data, const char *el, const char **attr)
{
int i;
// Skip the ParameterList element
if(strcmp(el, "ParameterList") == 0)
{
Depth++;
return;
}
//for (i = 0; i < Depth; i++)
//printf(" ");
//printf("%s", el);
DEMData demData;
for (i = 0; attr[i]; i += 2)
{
if(strcmp(attr[i],"BitFldPos") == 0)
{
demData.SetBitFldPos(*attr[i + 1] - '0');
}
else if(strcmp(attr[i],"BytFldPos") == 0)
{
char* pEnd;
int tmp = strtol(attr[i + 1],&pEnd,10);
demData.SetBytFldPos(tmp);
}
else if(strcmp(attr[i],"ByteOrder") == 0)
{
demData.SetByteOrder(attr[i + 1]);
}
else if(strcmp(attr[i],"DesS") == 0)
{
demData.SetDesS(attr[i + 1]);
}
else if(strcmp(attr[i],"EngUnit") == 0)
{
demData.SetEngUnit(attr[i + 1]);
}
else if(strcmp(attr[i],"OTag") == 0)
{
demData.SetOTag(attr[i + 1]);
}
else if(strcmp(attr[i],"ValTyp") == 0)
{
demData.SetValType(attr[i + 1]);
}
else if(strcmp(attr[i],"idx") == 0)
{
char* pEnd;
int tmp = strtol(attr[i + 1],&pEnd,10);
demData.SetIndex(tmp);
}
//printf(" %s='%s'", attr[i], attr[i + 1]);
}
// Insert the data in the vector.
dems.push_back(demData);
Depth++;
}
答案 0 :(得分:0)
我建议使用STL字符串对的STL向量。第一个是属性名称,第二个是值。
std::vector<std::pair<std::string,std::string> >
有些人会建议使用std :: map。