
xml 有如下信息:
<p align="0"> <span type="fixedtext" name="现病史" level="二级" print="True" fOntsize="10.5" showborder="False" fOntname="宋体" creator="88"> 患者自诉正常。。。。。。。。。。。。收入院 </span> <eof/> </p> 现在想根据元素属性值 "现病史" 来定位这个元素,可是用 strcmp 来比较这三个汉字没有用,比较另一个属性值是英文的却可以,比如 "fixedtext"。
我的代码:
while (l_pTarget) { TiXmlElement *pTmp = l_pTarget->FirstChildElement(); for (; pTmp != NULL; pTmp = pTmp->NextSiblingElement()) { int flag = 0; TiXmlAttribute *pAttr = pTmp->FirstAttribute(); for (; pAttr != NULL; pAttr = pAttr->Next()) { if (strcmp(pAttr->Value(), "现病史") == 0) { flag = 1; break; } } if (flag && pTmp->GetText() != NULL) file.Write(pTmp->GetText(), strlen(pTmp->GetText())); } l_pTarget = l_pTarget->NextSiblingElement("p"); } 我尝试打开 xml 时设置 utf-8,也没用。先谢谢大家了!
1 XinLake 2018 年 9 月 8 日 你把查找数据写死在了源码文件里,看你源码文件的 encode 和 XML 文件的 encode 要一样。 TinyXML 不能直接访问名称为“ name ” 的属性值不?第二层 for 好像可以不要吧。 |