C++ 如何将RapidXML内容写入MFC中的文件?

C++ 如何将RapidXML内容写入MFC中的文件?,c++,xml,mfc,C++,Xml,Mfc,如何将内容从RapidXML保存到xml文件?我的应用程序是MFC,我经常使用CString,因为它更容易操作字符串。所以,如果我有下面的代码,我如何才能保存到xml文件 #include "rapidxml.hpp" rapidxml::xml_document<> doc; rapidxml::xml_node<>* decl = doc.allocate_node(rapidxml::node_type::node_declaration, 0,0,0,0); de

如何将内容从RapidXML保存到xml文件?我的应用程序是MFC,我经常使用CString,因为它更容易操作字符串。所以,如果我有下面的代码,我如何才能保存到xml文件

#include "rapidxml.hpp"
rapidxml::xml_document<> doc;
rapidxml::xml_node<>* decl = doc.allocate_node(rapidxml::node_type::node_declaration, 0,0,0,0);
decl->append_attribute(doc.allocate_attribute("xml version", "1.0"));
doc.append_node(decl);  

rapidxml::xml_node<>* comment = doc.allocate_node(rapidxml::node_type::node_comment, 0, "Application Config");
doc.append_node(comment);

rapidxml::xml_node<>* subsytem = doc.allocate_node(rapidxml::node_type::node_element, "Subsystem");
subsytem->append_attribute(doc.allocate_attribute("Name", "My App"));
subsytem->append_attribute(doc.allocate_attribute("Version", "1.0"));
doc.append_node(subsytem);
#包括“rapidxml.hpp”
rapidxml::xml_文档文档;
rapidxml::xml\u node*decl=doc.allocate\u node(rapidxml::node\u type::node\u声明,0,0,0);
decl->append_属性(doc.allocate_属性(“xml版本”、“1.0”));
单据追加节点(decl);
rapidxml::xml_node*comment=doc.allocate_node(rapidxml::node_type::node_comment,0,“应用程序配置”);
单据追加节点(备注);
rapidxml::xml_节点*子系统=文档。分配_节点(rapidxml::节点_类型::节点_元素,“子系统”);
子系统->附加属性(单据分配属性(“名称”、“我的应用”);
子系统->追加属性(单据分配属性(“版本”、“1.0”);
单据追加_节点(子系统);
谢谢。

使用名称空间rapidxml;
using namespace rapidxml;
int testmain()
{
    xml_document<> doc;
    xml_node<>* decl = doc.allocate_node(node_declaration);
    decl->append_attribute(doc.allocate_attribute("version", "1.0"));
    decl->append_attribute(doc.allocate_attribute("encoding", "UTF-8"));
    doc.append_node(decl);  



    xml_node<> *files = doc.allocate_node(node_element, "Files");
    doc.append_node(files);
    xml_attribute<> *attr = doc.allocate_attribute("dummy", "google.com");
    files->append_attribute(attr);

    for(int i = 0;i<10;++i)
    {
        xml_node<> *file = doc.allocate_node(node_element, "File");
        files->append_node(file);

        xml_node<> *path = doc.allocate_node(node_element, "Path","File_path");
        file->append_node(path);
        xml_node<> *name = doc.allocate_node(node_element, "Name""File_name");
        file->append_node(name);
    }

    std::ofstream myfile;
    myfile.open ("c:/example.xml");
    myfile << doc;
    //print(std::cout, doc, 0);
    return 0;
};
int testmain() { xml_文档文档; xml\u node*decl=doc.allocate\u node(node\u声明); decl->append_属性(文档分配_属性(“版本”、“1.0”); decl->append_属性(文档分配_属性(“编码”、“UTF-8”); 单据追加节点(decl); xml_节点*files=doc.allocate_节点(节点元素,“文件”); 单据追加节点(文件); xml_attribute*attr=doc.allocate_属性(“dummy”、“google.com”); 文件->附加属性(属性); for(int i=0;iappend_节点(文件); xml_node*path=doc.allocate_node(节点元素,“路径”、“文件路径”); 文件->附加节点(路径); xml_node*name=doc.allocate_node(节点元素,“name”“File_name”); 文件->附加节点(名称); } std::流myfile; myfile.open(“c:/example.xml”);
我的文件RapidXML手册()的第2.4节打印XML非常清楚地为您的问题提供了许多解决方案。请确保在
myfile中包含“RapidXML\u print.hpp”