TinyXML

前端之家收集整理的这篇文章主要介绍了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>" ;

猜你在找的XML相关文章