工作中遇到这种需求,因为没有找到相关资源,所以自己写了一个文件。
本人水平非常入门,但是考虑到也许有人会有这方面的需求,所以贴出来分享一下。
使用例子:
test.cpp:
#include <iostream>
#include "write_xml.h"
#include <string>
using namespace std;
void main()
{
CWrite_xml xml;
xml.add_title("1.0","UTF-8");
xml.add_father_node("students");
xml.add_father_node("student");
xml.add_child_node("学号","10010");
xml.add_child_node("姓名","sansa");
xml.end_father_node("student");
xml.end_father_node("students");
string s_xml=xml.backstring();
cout<<s_xml.c_str()<<endl;
}
写xml字符串的文件:
write_xml.h:
#ifndef WTITE_XML_H
#define WTITE_XML_H
#include<iostream>
using namespace std;
class CWrite_xml
{
public:
CWrite_xml(){};
~CWrite_xml(){};
void add_title(const char *version,const char * tyle);
void add_father_node(const char* name);
void add_child_node(const char* name,const char* substance);
void end_father_node(const char* name);
int check();
string backstring();
private:
string ss;
};
#endif
write_xml.cpp:
#include"write_xml.h"
void CWrite_xml::add_title(const char *version,const char * tyle)
{
string TITILE="<?xml version=\"";
TITILE.append(version);
TITILE.append(" encoding=\"");
TITILE.append(tyle);
TITILE.append("\" ?>");
this->ss=TITILE;
}
void CWrite_xml::add_father_node(const char* name)
{
string _begin="<>";
_begin.insert(1,name);
this->ss.append(_begin);
}
void CWrite_xml::add_child_node(const char* name,const char* substance)
{
string _begin="<>";
_begin.insert(1,name);
string _end="</>";
_end.insert(2,name);
this->ss.append(_begin);
this->ss.append(substance);
this->ss.append(_end);
}
void CWrite_xml::end_father_node(const char* name)
{
string _end="</>";
_end.insert(2,name);
this->ss.append(_end);
}
int CWrite_xml::check()
{
return 1;
}
string CWrite_xml::backstring()
{
return this->ss;
}