TinyXML 用法举例 -- 读取XML,生成XML,修改删除XML

XML:

中文名称: 可扩展标记语言 
英文名称: extensible markup language;
XML 定义:用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。(百度百科)
下载地址:http://sourceforge.net/projects/tinyxml/
将6个文件拷贝到工程目录即可。
tinystr.h
tinyxml.h
tinystr.cpp
tinyxmlerror.cpp
tinyxmlparser.cpp
tinyxml.cpp
读取XML:     
TiXmlElement *RootElement = NULL;     
TiXmlDocument *pDoc = NULL;    
string filefullPath ="test.xml";    
pDoc = new TiXmlDocument(filefullPath.c_str());    
pDoc->LoadFile();    
RootElement = pDoc->RootElement();    
使用RootElement即可遍历所有节点

遍历XML节点:    
使用XML根节点即可遍历所有节点     
TiXmlElement *currentNode = RootElement->FirstChildElement();     
while (currentNode)     
{         
  //具体操作逻辑         
currentNode = currentNode->NextSiblingElement();     
}

遍历XML节点的属性 
TiXmlElement *currentNode = RootElement->FirstChildElement();     
while (currentNode)     
{         
TiXmlAttribute *Addr = currentNode->FirstAttribute();         
while (Addr)         
{             
printf("%s %s\n",Addr->Name(),Addr->Value());//打印属性名字和对应值             
Addr = Addr->Next();         
}         
currentNode = currentNode->NextSiblingElement();     
}

生成XML:     
TiXmlElement *RootElement = NULL;     
TiXmlDocument *pDoc = NULL;    
pDoc = new TiXmlDocument();    
TiXmlDeclaration *pDeclaration = new TiXmlDeclaration(("1.0"),("UTF-8"),(""));    
pDoc->LinkEndChild(pDeclaration);     
RootElement = new TiXmlElement(("MyGUI"));    
RootElement->SetAttribute("type","Resource");    
RootElement->SetAttribute("version","1.1");    
pDoc->LinkEndChild(RootElement);     
TiXmlElement *xnode = new TiXmlElement("Resource");     
xnode->SetAttribute("type","ResourceSkin");     
xnode->SetAttribute("name","pig");     
RootElement->LinkEndChild(xnode);     
//屏幕打印XML     
pDoc->Print();         
结果:                  
<?xml version="1.0" encoding="UTF-8" ?>
<MyGUI type="Resource" version="1.1">
    <Resource type="ResourceSkin" name="pig"/>
</MyGUI>

//TiXmlElement *curNode 
删除节点:   
RootElement->RemoveChild(curNode);    

添加节点:   
RootElement->LinkEndChild(curNode);     

文件输出XML:     
pDoc->SaveFile("myxml.xml");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值