TinyXML-2 写 XML 文件

本文介绍如何使用C++中的tinyxml2库来创建并保存XML文件。通过实例展示了从XML文档声明、注释到元素的创建过程,以及如何将这些组件链接在一起形成完整的XML文档,并最终保存到磁盘。

要写入xml文件的内容

<?xml version="1.0" encoding="UTF-8"?>
<!--this is a comment-->
<html>
  <head>this is a heading!</head>
  <body>
    <p>this is a paragraph!</p>
    <h1>this is first heading!</h1>
  </body>
</html>

代码实现

#include <iostream>
#include "tinyxml2.h"

using namespace std;
using namespace tinyxml2;

/**************************************
<?xml version="1.0" encoding="UTF-8"?>
<!--this is a comment-->
<html>
  <head>this is a heading!</head>
  <body>
    <p>this is a paragraph!</p>
    <h1>this is first heading!</h1>
  </body>
</html>
**************************************/

int main()
{
    XMLDocument doc;

    doc.LinkEndChild(doc.NewDeclaration("xml version=\"1.0\" encoding=\"UTF-8\""));
    doc.LinkEndChild(doc.NewComment("this is a comment"));

    auto htmlElement = doc.NewElement("html");
    auto headElement = doc.NewElement("head");
    headElement->SetText("this is a heading!");
    auto bodyElement = doc.NewElement("body");

    htmlElement->LinkEndChild(headElement);
    htmlElement->LinkEndChild(bodyElement);


    auto pElement = doc.NewElement("p");
    pElement->SetText("this is a paragraph!");
    auto h1Element = doc.NewElement("h1");
    h1Element->SetText("this is first heading!");

    bodyElement->LinkEndChild(pElement);
    bodyElement->LinkEndChild(h1Element);

    doc.LinkEndChild(htmlElement);

    XMLPrinter printer;
    doc.Print(&printer);
    cout<< printer.CStr() << endl;

    doc.SaveFile("myXML.xml");

    return 0;
}

代码解析

XMLDocument 代表XML文件; XMLDeclaration 代表XML文档声明;XMLComment 代表XML注释; XMLElement 代表一个XML元素。。。

  通过 XMLDocument的NewXXXX可以new出以上各种对象,然后每个元素分别调用LinkEndChild将属于自己的子元素挂载到

自己的元素对间。

  XMLPrinter用于打印XML文档;

  XMLDocument的SaveFile()将保存文件到指定的磁盘位置中。

 

运行结果

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值