您的位置:首页 > 编程语言 > C语言/C++

C++生成xml(使用tinyxml)

2013-01-09 13:46 549 查看
  解析及库安装方法在上一篇文章里。

  我是按照这个网站上的xml样式写的例程。

  由于原xml属性过多,我只取了3个标示并且每个标示取4个属性,以便简化流程。

代码如下:

#include <iostream>
#include "tinyxml.h"
using namespace std;
#pragma comment(lib,"tinyxml.lib")

const char* AttributeName[4]={"TITLE","ARTIST","PRICE","YEAR"};
const char* Attribute[4][3]={{"Empire Burlesque","Hide your heart","Greatest Hits"},
{"Bob Dylan","Bonnie Tyler","Dolly Parton"},
{"10.90","9.90","9.90"},
{"1985","1988","1982"}};

int main()
{
const char* xmlFile = "lianxi.xml";
TiXmlDocument doc;
TiXmlDeclaration* decl = new TiXmlDeclaration("1.0", "", "");
doc.LinkEndChild(decl);

TiXmlElement* firstLevel=new TiXmlElement("CSTALOG");
firstLevel->SetAttribute("CD","3");
firstLevel->SetAttribute("Attribute","4");

for (int i=0;i<3;i++)
{
TiXmlElement* secondLevel=new TiXmlElement("CD");

for (int j=0;j<4;j++)
{
TiXmlElement* thirdLevel=new TiXmlElement(AttributeName[j]);
thirdLevel->LinkEndChild(new TiXmlText(Attribute[j][i]));
secondLevel->LinkEndChild(thirdLevel);
}

firstLevel->LinkEndChild(secondLevel);
}
doc.LinkEndChild(firstLevel);

doc.SaveFile(xmlFile);
return 0;
}


貌似有内存泄露,不过为了清晰的显示结构,不管那么多了。

最后生成如下文件:

<?xml version="1.0" ?>
<CSTALOG CD="3" Attribute="4">
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
<CD>
<TITLE>Greatest Hits</TITLE>
<ARTIST>Dolly Parton</ARTIST>
<PRICE>9.90</PRICE>
<YEAR>1982</YEAR>
</CD>
</CSTALOG>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: