我想用 TinyXML 从 xml 文件中解析一些数据。
这是我的 text.xml 文件内容:
<?xml version="1.0" encoding="iso-8859-1"?>
<toto>
<tutu>
<tata>
<user name="toto" pass="13" indice="1"/>
<user name="tata" pass="142" indice="2"/>
<user name="titi" pass="azerty" indice="1"/>
</tata>
</tutu>
</toto>
我想访问第一个元素“用户”。执行此操作的方法如下:
TiXmlDocument doc("test.xml");
if (doc.LoadFile())
{
TiXmlNode *elem = doc.FirstChildElement()->FirstChildElement()->FirstChildElement()->FirstChildElement();
std::cout << elem->Value() << std::endl;
}
在输出中:用户。
但是代码非常丑陋而且不通用。我尝试了下面的代码来模拟与上面的代码相同的行为,但它不起作用并且发生了错误。
TiXmlElement *getElementByName(TiXmlDocument &doc, std::string const &elemt_value)
{
TiXmlElement *elem = doc.FirstChildElement(); //Tree root
while (elem)
{
if (!std::string(elem->Value()).compare(elemt_value))
return (elem);
elem = elem->NextSiblingElement();
}
return (NULL);
}
也许我错过了库中可以完成这项工作的一个特殊函数(一个 getElementByName 函数)。我只想获得一个指向值是我正在寻找的元素的指针。有人可以帮助我吗?在此先感谢您的帮助。