C++ 如何将RapidXML内容写入MFC中的文件?
如何将内容从RapidXML保存到xml文件?我的应用程序是MFC,我经常使用CString,因为它更容易操作字符串。所以,如果我有下面的代码,我如何才能保存到xml文件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
#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”