XML追加节点

XML追加节点,第1张

可以参考http://www.grinninglizard.com/tinyxmldocs/classTiXmlNode.html

我觉得可以用iteratechildren或nextsibling进行遍历,然后用insertafterchild来插入节点

#include <stdio.h>

#include <stdlib.h>

#include "tinyxml.h"

char * ShowNodeInfo(TiXmlElement *pCurrentNode)

int _tmain(int argc, _TCHAR* argv[])

{

TiXmlDocument aDoc("test.xml")

if ( ! aDoc.LoadFile() )

{

perror("打开test.xml失败:")

return -1

}

TiXmlElement *pRoot = aDoc.RootElement()

TiXmlElement *pWork = pRoot

ShowNodeInfo(pWork)

getchar()

return 0

}

//递归访问

char * ShowNodeInfo(TiXmlElement *pCurrentNode)

{

//为NULL时表示一次递归完成

if ( NULL == pCurrentNode )

{

return ""

}

else if ( pCurrentNode->NoChildren() )//没有子结点则是最底层的结点

{

pCurrentNode->Print(stdout,0)

printf("\n")

ShowNodeInfo(NULL)

}

else if( ! pCurrentNode->NoChildren() )//有子结点则每个子结点都递归处理

{

TiXmlElement * pChilds = pCurrentNode->FirstChildElement()//获取第一个子结点

ShowNodeInfo(pChilds)//递归子结点

pChilds = pChilds->NextSiblingElement()//获取刚显示的结点的同级下一个结点

while ( NULL != pChilds )//递归处理此结点下的所有结点

{

ShowNodeInfo(pChilds)

pChilds = pChilds->NextSiblingElement()

}

ShowNodeInfo(NULL)//此结点所有子结点都处理完毕

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11698058.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存