忽略xml元素中的字符

Ignore character in xml element

本文关键字:字符 元素 xml 忽略      更新时间:2023-10-16

我正在尝试模拟游戏模式,我目前正在编写读取xml的函数。除了xml的这一部分,其他内容都可以正常读取。

<UPGRADE
    requireHonor="250:325:400:1200" dps="40:60:80:200" magazineSize="0.5:0.75:1.0:3.0" 
    <!--The magazineSize is multiplied by the size of the magazine & then added to the original size.-->
/>

是否有一种特殊的方法可以忽略数字之间的冒号?如果这个问题已经被问过了,我很抱歉,但我没能找到任何与此相当匹配的问题。

用sscanf:

读取的例子
            if (!stricmp(szAttrName, "requireHonor"))
            {
                sscanf(szAttrValue, "%d:%d:%d:%d", &pUpgrade->nrequireHonor[0], &pUpgrade->nrequireHonor[1],
                    &pUpgrade->nrequireHonor[2], &pUpgrade->nrequireHonor[3]);
            }
            else if (!stricmp(szAttrName, "dps"))
            {
                sscanf(szAttrValue, "%d %d %d %d", &pUpgrade->ndps[0], &pUpgrade->ndps[1], &pUpgrade->ndps[2],
                    &pUpgrade->ndps[3]);
            }
            else if (!stricmp(szAttrName, "magazineSize"))
            {
                sscanf(szAttrValue, "%.2f %.2f %.2f %.2f", &pUpgrade->fmagazineSize[0], &pUpgrade->fmagazineSize[1],
                    &pUpgrade->fmagazineSize[2], &pUpgrade->fmagazineSize[3]);
            }

您的dps格式字符串应该是"%d:%d:%d:%d",就像您对requireHonor所做的那样,并且您的magazineSize格式字符串应该是"%f:%f:%f:%f"带冒号。您需要冒号来锚定解析,对于解析浮点数,只需%f就足够了。