TinyXML

1. 介绍TinyXML的一些类
TiXmlBase:整个TinyXML模型的基类
TiXmlAttribute:对应于XML中的元素的属性
TiXmlNode:对应于DOM结构中的节点
TiXmlComment:对应于XML中的注释
TiXmlDeclaration:对应于XML中的申明部分,<?versiong=“1.0” ?>
TiXmlDocument:对应于XML的整个文档
TiXmlElement:对应于XML的元素
TiXmlText:对应于XML的文字部分
TiXmlUnknown:对应于XML的未知部分
TiXmlHandler:定义了针对XML的一些操作

2. 下载
http://prdownloads.sourceforge.net/tinyxml

3. 头文件

#include "tinyxml.h"
#include "tinystr.h"  

4. 生成xml

TiXmlDocument *pDoc = new TiXmlDocument;        //生成XML
TiXmlDeclaration *pDeclaration = new TiXmlDeclaration("1.0","UTF-8","");        //序言区
pDoc->LinkEndChild(pDeclaration);
TiXmlElement *GPS = new TiXmlElement("GPS");        //父结点    ->省略了根结点
pDoc->LinkEndChild(GPS);
TiXmlElement *pCode = new TiXmlElement("Code"); 
GPS->LinkEndChild(pCode);
TiXmlElement *pSDate = new TiXmlElement("SDate");
GPS->LinkEndChild(pSDate);

TiXmlText *tCode = new TiXmlText("");
pCode->LinkEndChild(tCode);
TiXmlText *tSDate = new TiXmlText("");
pSDate->LinkEndChild(tSDate);

TiXmlPrinter printer;
pDoc->Accept(&printer);
//打印XML字符串
cout << printer.CStr() << endl;

//生成xml格式文件
pDoc->SaveFile("Respond.xml");
<?xml version="1.0" encoding="UTF-8" ?>
<GPS>
    <Code>D1</Code>
    <SDate>2013-08-2112:41:05</SDate>
</GPS>  

5. 节点附加属性

parent->SetAttribute("time","12:10");        //属性可以添加多个,格式是(属性名,属性值字符串)

6. 解析xml

TiXmlDocument *pDoc = new TiXmlDocument();
pDoc->Clear();        //开始做清空操作,防止Parse解析一个不变的字符串 
pDoc->Parse(" ");    //解析字符串
pDoc->LoadFile("*.xml");    //解析xml文件 

TiXmlElement *RootElement = pDoc->RootElement();
TiXmlElement *Code = RootElement->FirstChildElement();
printf("%s\n",Code->GetText());
TiXmlElement *SDate = Code->NextSiblingElement(); 

7. 获取节点值

pNameEle->Value();        //结点名
pNameEle->GetText();        //内容
pNameEle->Attribute("id");    //结点属性

8. 查询指定字段

TiXmlDocument pDoc;
pDoc.RootElement()->FirstChild()->Value();    //取得第一个子节点名
pDoc.RootElement()->FirstChild("IName")->NextSibling()->Value()    //取得某一个节点的下一个节点名
pDoc.RootElement()->FirstChild("SDate")->ToElement()->GetText();    //取得子节点值

9. CDATA区段
XML文件中的CDATA区段以

<![CDATA[

开始,以

]]> 

结束
CDATA区段中的文本不会被XML解析器解析,无论它们带有什么内容
你可以用CDATA区段来存储含有不想被解析的文本(例如程序代码段)

string strCDATA = RootElement()->FirstChild()->Value();             //获取CDATA区段的数据

10. 简易生成方法

const char *str = "<GPS><body><![CDATA[fuck]]></body></GPS>" ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值