rapidxml往xml文件循环写入内容
初次使用rapidxml往xml文件中循环写入内容,以下是错误演示:
bool StudentMgr::save ()
{///创建文件操作对象rapidxml::xml_document<> doc;myNode* root = doc.allocate_node(rapidxml::node_pi,doc.allocate_string("xml version='1.0' encoding='gb2312'"));doc.append_node(root);myNode* StudentInformation = doc.allocate_node(rapidxml::node_element,"StudentInformation",nullptr);myNode* StudentList = doc.allocate_node(rapidxml::node_element,"StudentList",nullptr);doc.append_node(StudentInformation);StudentInformation->append_node(StudentList);MapStudent::iterator it;char str[1024];const char* name;const char* sex;const char* id;const char* telnumber;int iter=0;///取出容器内容for (it = _students.begin (); it != _students.end (); it++){name = it->second._name.data();sex = it->second._sex.data();id = it->second._id.data();telnumber = it->second._telnumber.data();sprintf_s(str,"%s %s %s %s",name,sex,id,telnumber);StudentList->append_node(doc.allocate_node(rapidxml::node_element, "Student",str));}///打开文件并写入xml信息std::string text;rapidxml::print(back_inserter(text), doc, 0);std::ofstream out(_fileName);out<<doc;return true;
}
代码中未定义的变量为类的成员变量已在容器中赋值,就不再赘述,以上代码能通过编译也能运行,本函数是想实现将容器中的成员变量循环赋值给student节点,然后重定义该xml文件内容;但真实效果却是student的每一行都为容器中最后的元素的值。
正确的代码只需要将上图代码中的
StudentList->append_node(doc.allocate_node(rapidxml::node_element, "Student",str));
修改为
StudentList->append_node(doc.allocate_node(rapidxml::node_element, "Student", doc.allocate_string(str, 1024)));
其中巨细暂时还没有探究,现只解决了这个问题,希望有了解的大佬可以讲解一下,不胜感激。
rapidxml往xml文件循环写入内容相关推荐
- java解析xml文件并写入Excel表
解析xml文件并写入Excel表 类似于如下格式的xml数据,解析之后将数据写入Excel中 <?xml version="1.0" encoding="UTF-8 ...
- 1万条xml文件的写入,附加杂类知识
写这段代码目的:这次需要将集搜客爬取到的10482个XML文件逐个写入TXT文件中,将xml中的标题结点的值作为TXT文件的名字,XML文件结构如下 话不多说,我们放代码: package xmlTo ...
- ASP.NET创建文件并写入内容
本文从最基本的操作开始,解释在ASP.NET中文件处理的概念,包括如从一个文件中读取内容.如何向一个文件中写入内容和如何删除一个文件. 前面已经提到,要想在ASP.NET 页面中进行文件处理,必须要有 ...
- python把print写入文件_Python中用print方法向文件中写入内容
Python中用print方法向文件中写入内容 2013-02-02| 一个小功能,我就是想用print功能实现,不想用write 1 2 3 4 5 6import os os.chdir(&quo ...
- 文件——创建文件并写入内容
package main import ( "os" "fmt" "bufio" ) /* 基本介绍 func OpenFile(name ...
- 编程随笔-Java | 03.使用FileWriter向文件中写入内容
文章目录 1.FileWriter类 构造方法 常用API 2.使用示例:创建文件并写入内容 参考文章 1.FileWriter类 构造方法 public FileWriter(File file); ...
- 将XML文件中的内容批量修改
批量修改VOC数据集中xml标签文件的标签名称 第一版:每次都只单一xml文件中的内容进行修改,较为麻烦 import os import xml.etree.ElementTree as ET#程序 ...
- Linux 快速创建文件并写入内容
Linux 创建文件并写入内容 1.自动创建 test.txt 文件 2.自动写入 "Raspberry" > 创建并写入 >> 追加写入 其他方法: vi vi ...
- Java创建文件并写入内容
以下代码可以创建一个文件,并使用FileWriter向文件中写入内容,若路径不存在则自动创建路径,若文件已经存在,则不再创建 public void createFile() throws IOExc ...
- XML文件的写入和读取(解析)基于DOM4J工具
这两天做了个天气的小应用,需要用到百度的天气api,获取到的信息是一个xml文档. 所以就从网上查了一下相关的知识,就是关于怎么去解析出来xml文件的信息. 先放一个我自己写的例子,加了点注释,贴这里 ...
最新文章
- 第一次使用Android Studio时你应该知道的一切配置
- python之np.var()函数解析
- POJ1364基本的查分约束问题
- JS基础--条件判断(3)
- linux内核启动失败,裁剪后montavistalinux内核 nfs启动失败
- 微课|中学生可以这样学Python(1.4节):安装扩展库
- 一道简单而又容易出错的题目
- hdu 6108 小C的倍数问题
- [转]CG编程概念 ,及CG编译器与VC6.0集成方法
- android 设为锁屏壁纸,修改设置Android锁屏壁纸为系统默认的锁屏壁纸
- 基于JAVA-公益劳动招募管理系统-计算机毕业设计源码+系统+mysql数据库+lw文档+部署
- DoNet6新特性 PriorityQueue 优先队列终于来啦~
- 干货!自监督学习在推荐系统中的应用
- android edittext怎样获取输入的内容,如何获取edittext中输入的内容?
- android代码禁用软键盘,如何强制禁用软键盘
- Kafka 集群扩容、分区重新分配、SparkStreaming自适应上游kafka topic partition数目变化
- 给你一台大疆无人机,你能用来做点啥?(二)-----——倾斜摄影建模
- 物理工程建模和AI量化建模的时空跳跃
- html中尖括号写法,HTML中如何显示特殊字符(尖括号 “”,)?
- C2C、B2B、B2C解释(转)