&strNodeName,TiXmlElement* &Node)
{
// 假如等于根节点名,就退出
if (strNodeName==pRootEle->Value())
{
Node = pRootEle;
return true;
}
TiXmlElement* pEle = pRootEle;
for (pEle = pRootEle->FirstChildElement(); pEle; pEle = pEle->NextSiblingElement())
{
// 递归处理子节点,获取节点指针
if(GetNodePointerByName(pEle,strNodeName,Node))
return true;
}
return false;
}
/*!
* /brief 通过根节点和节点名获取节点指针。
*
* /param pRootEle xml 文件的根节点。
* /param strNodeName 要查询的节点名
* /param Node 需要查询的节点指针
* /return 是否找到。 true 为找到相应节点指针, false 表示没有找到相应节点指针。
*/
bool GetNodePointerByName(TiXmlElement* pRootEle,std::string
&strNodeName,TiXmlElement* &Node)
{
// 假如等于根节点名,就退出
if (strNodeName==pRootEle->Value())
{
Node = pRootEle;
return true;
}
TiXmlElement* pEle = pRootEle;
for (pEle = pRootEle->FirstChildElement(); pEle; pEle = pEle->NextSiblingElement())
{
// 递归处理子节点,获取节点指针
if(GetNodePointerByName(pEle,strNodeName,Node))
return true;
}
return false;
}
有了这个函数,我们就很容易实现查询节点的相应文本或属性值。