C++生成xml(使用tinyxml)

  解析及库安装方法在上一篇文章里。

  我是按照这个网站上的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>

 

 

posted @ 2013-01-09 13:46  Dsp Tian  阅读(8298)  评论(0编辑  收藏  举报