- xml_rank = xmlGetProp(n, (xmlChar *) "rank");
- rank = xml_rank ? (const char *) xml_rank : ser_md->rank;
+ if (rank_num)
+ {
+ int i;
+ for (i = 0; i < rank_num; i++)
+ {
+ const char *val = rank_values[i];
+ const char *cp = strchr(val, '=');
+ if (!cp)
+ continue;
+ if ((cp - val) == strlen((const char *) type)
+ && !memcmp(val, type, cp - val))
+ {
+ rank = cp + 1;
+ break;
+ }
+ }
+ }
+ else
+ {
+ xml_rank = xmlGetProp(n, (xmlChar *) "rank");
+ rank = xml_rank ? (const char *) xml_rank : ser_md->rank;
+ }