有会 tinyXML 的吗?求助汉字查找的问题

2018-09-08 16:24:06 +08:00
 thinkIn

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,也没用。先谢谢大家了!

1008 次点击
所在节点    问与答
3 条回复
XinLake
2018-09-08 18:22:16 +08:00
你把查找数据写死在了源码文件里,看你源码文件的 encode 和 XML 文件的 encode 要一样。

TinyXML 不能直接访问名称为“ name ” 的属性值不?第二层 for 好像可以不要吧。
thinkIn
2018-09-08 18:52:39 +08:00
@XinLake 可以访问名称为“ name ” 的属性值,就是编码有问题。第二层 for 需要的,遍历属性找到 name 的值。
thinkIn
2018-09-08 18:55:02 +08:00
@XinLake >源码文件的 encode 和 XML 文件的 encode 要一样。
应该就是这个问题了,非常感谢!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/487402

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX