修改节点其实和查询指定节点的值有点类似,也分为两个函数,一个实现修改文本。另一个负责修改属性。
/*
!
* /brief 修改指定节点的文本。
*
* /param XmlFile xml文件全路径。
* /param strNodeName 指定的节点名。
* /param strText 重新设定的文本的值
* /return 是否成功。true为成功,false表示失败。
*/
bool ModifyNode_Text( const std:: string & XmlFile, const std:: string & strNodeName, const std:: string & strText)
{
// 定义一个TiXmlDocument类指针
TiXmlDocument * pDoc = new TiXmlDocument();
if (NULL == pDoc)
{
return false ;
}
pDoc -> LoadFile(XmlFile);
TiXmlElement * pRootEle = pDoc -> RootElement();
if (NULL == pRootEle)
{
return false ;
}
TiXmlElement * pNode = NULL;
GetNodePointerByName(pRootEle,strNodeName,pNode);
if (NULL != pNode)
{
pNode -> Clear(); // 首先清除所有文本
// 然后插入文本,保存文件
TiXmlText * pValue = new TiXmlText(strText);
pNode -> LinkEndChild(pValue);
pDoc -> SaveFile(XmlFile);
return true ;
}
else
return false ;
}
/* !
* /brief 修改指定节点的属性值。
*
* /param XmlFile xml文件全路径。
* /param strNodeName 指定的节点名。
* /param AttMap 重新设定的属性值,这是一个map,前一个为属性名,后一个为属性值
* /return 是否成功。true为成功,false表示失败。
*/
bool ModifyNode_Attribute( const std:: string & XmlFile, const std:: string & strNodeName,
const std::map < std:: string ,std:: string >
* /brief 修改指定节点的文本。
*
* /param XmlFile xml文件全路径。
* /param strNodeName 指定的节点名。
* /param strText 重新设定的文本的值
* /return 是否成功。true为成功,false表示失败。
*/
bool ModifyNode_Text( const std:: string & XmlFile, const std:: string & strNodeName, const std:: string & strText)
{
// 定义一个TiXmlDocument类指针
TiXmlDocument * pDoc = new TiXmlDocument();
if (NULL == pDoc)
{
return false ;
}
pDoc -> LoadFile(XmlFile);
TiXmlElement * pRootEle = pDoc -> RootElement();
if (NULL == pRootEle)
{
return false ;
}
TiXmlElement * pNode = NULL;
GetNodePointerByName(pRootEle,strNodeName,pNode);
if (NULL != pNode)
{
pNode -> Clear(); // 首先清除所有文本
// 然后插入文本,保存文件
TiXmlText * pValue = new TiXmlText(strText);
pNode -> LinkEndChild(pValue);
pDoc -> SaveFile(XmlFile);
return true ;
}
else
return false ;
}
/* !
* /brief 修改指定节点的属性值。
*
* /param XmlFile xml文件全路径。
* /param strNodeName 指定的节点名。
* /param AttMap 重新设定的属性值,这是一个map,前一个为属性名,后一个为属性值
* /return 是否成功。true为成功,false表示失败。
*/
bool ModifyNode_Attribute( const std:: string & XmlFile, const std:: string & strNodeName,
const std::map < std:: string ,std:: string >