【发布时间】:2013-02-19 00:28:19
【问题描述】:
给定的 XML 如下:
<a>
<result>0</result>
<data>I9C3J9N3cCTZdKGK+itJW1Q==</data>
</a>
我需要知道<result> 为 0 并对其采取行动。
我在做:
TiXmlDocument doc;
bool bOK = doc.Parse((const char*)chunk.memory, 0, TIXML_ENCODING_UTF8);
if (bOK)
{
TiXmlHandle hDoc(&doc);
TiXmlElement *pRoot, *pParm, *pParm2;
pRoot = doc.FirstChildElement("a");
if(pRoot)
{
pParm = pRoot->FirstChildElement("result");
if (pParm)
{
if (pParm->GetText()=="0")
{
pParm2 = pRoot->NextSiblingElement("data");
if (pParm2)
{
sValue = pParm2->GetText();
std::cout << "sValue: " << sValue << std::endl;
}
}
}
}
}
我认为GetText() 是正确答案,但我做错了,因为我从来没有进入if 来检查<data> 元素。
谁能帮我解释一下?
【问题讨论】:
-
TinyXML 可以选择使用
std::string而不是 char 缓冲区对其进行编译。您可能需要指定使用它的方式,因为它会影响字符串比较中的潜在错误。 -
我的 PCH 中确实有
#define TIXML_USE_STL -
我所做的只是执行
make并构建完成