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-09-08 18:22:16 +08:00
你把查找数据写死在了源码文件里,看你源码文件的 encode 和 XML 文件的 encode 要一样。
TinyXML 不能直接访问名称为“ name ” 的属性值不?第二层 for 好像可以不要吧。 |