- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我自己研究了 rapidXML 源代码并设法读取了一些值。现在我想更改它们并将它们保存到我的 XML 文件中:
解析文件并设置指针
void SettingsHandler::getConfigFile() {
pcSourceConfig = parsing->readFileInChar(CONF);
cfg.parse<0>(pcSourceConfig);
}
从 XML 读取值
void SettingsHandler::getDefinitions() {
SettingsHandler::getConfigFile();
stGeneral = cfg.first_node("settings")->value();
/* stGeneral = 60 */
}
更改值并保存到文件
void SettingsHandler::setDefinitions() {
SettingsHandler::getConfigFile();
stGeneral = "10";
cfg.first_node("settings")->value(stGeneral.c_str());
std::stringstream sStream;
sStream << *cfg.first_node();
std::ofstream ofFileToWrite;
ofFileToWrite.open(CONF, std::ios::trunc);
ofFileToWrite << "<?xml version=\"1.0\"?>\n" << sStream.str() << '\0';
ofFileToWrite.close();
}
将文件读入缓冲区
char* Parser::readFileInChar(const char* p_pccFile) {
char* cpBuffer;
size_t sSize;
std::ifstream ifFileToRead;
ifFileToRead.open(p_pccFile, std::ios::binary);
sSize = Parser::getFileLength(&ifFileToRead);
cpBuffer = new char[sSize];
ifFileToRead.read( cpBuffer, sSize);
ifFileToRead.close();
return cpBuffer;
}
但是,无法保存新值。我的代码只是将原始文件保存为值“60”,而它应该是“10”。
Rgds莱恩
最佳答案
我认为这是一个 RapidXML Gotcha
尝试添加 parse_no_data_nodes
标记为 cfg.parse<0>(pcSourceConfig)
关于c++ - RapidXML,读取和保存值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2212607/
我正在使用 RapidXML 读取 XML 文件、解析它、执行一些操作并将其写回。 标签内任何用引号书写的文本,都以扩展形式用引号打印。 是否有任何标志可以防止引号和其他特殊字符的扩展。 欢迎任何建议
今天我试图从我的项目中查找内存泄漏然后我遇到了下面的示例代码 std::string VersionValue("1.0"); std::string EncodingValue("UTF-8");
我最近一直在使用 Rapidxml 并遇到了以下问题。当我尝试添加属性时,这些属性不是硬编码的,而是在程序运行时生成的,rapidxml 插入了错误的字符。 这是我的代码示例: void Pro
我是 rapidXML 的新手,但第一印象并不积极,我制作了简单的 Visual Studio 6 C++ Hello World 应用程序并将 RapidXML hpp 文件添加到项目和 main.
ifstream fin("tree.xml"); if (fin.fail()) return 1; fin.seekg(0, ios::end); size_t lengt
我过去使用 RapidXML 时遇到了几个问题,但这个问题让我很困惑。 我正在创建应用程序事件时间戳的日志,外部程序可以在重播中读取在正确时间发生在原始应用程序中的任何音频。 在应用程序初始化时,会正
因此,我最近掌握了 RapidXML,将其用作在我的程序中解析 XML 的一种方式,我一直主要将其用作一种乱七八糟的方式,但我遇到了一些非常奇怪的问题,我真的很挣扎追查。试着和我一起解决这个问题,因为
我正在使用 RapidXML 来解析一个 xml 字符串。这是我的字符串: std::string str(" 2016-10-18T08:51:50.657+01:0000 "); 下面是我尝试解析
我试图以一种肮脏的方式使用 rapidxml 附加一个非常大的子树,利用 value 方法 rapidxml::xml_node<>* node = allocate_node(rapidxml::n
因此,在 RapidXML 中,我试图遍历我的文件以从某些 tileset 节点获取数据: rapidxml::xml_node<> *root_node = doc.first_node("map"
我正在使用 RapidXML 解析一个 xml 文件,其中包含一些我想在我的 C++ 程序中使用的变量。我能够读取有效节点,但我想添加一些错误处理,例如,如果节点名称拼写错误。 这是我的文件的一个工作
我在 PC 上的 VS2012 中使用 rapidXML 和 C++。我已经解析了 XML 文件,但现在我想单独打印出属性值。我通常可以使用下面的代码来做到这一点。但是,此方法需要知道节点名称和属性名
使用 RapidXML 我需要创建和销毁大量 XML 节点和 XML 属性。我在内存池文档中读到,没有办法使用 allocate_string 函数释放在内存池中创建的单个字符串。 但是这样内存池的大
RapidXml 的文档说 Pool maintains RAPIDXML_STATIC_POOL_SIZE bytes of statically allocated memory. Until s
我在使用 RapidXML 解析字符串时遇到了一些问题。我从 Eclipse 中收到一个错误,声称解析函数不存在。 make all Building file: ../search.cpp Invo
我有一个非常恼人的问题,我花了很多时间来解决它。我在 C++ 中使用 rapidXML 来解析 XML 文件: xml_document<> xmlin; stringstream input; //
我自己研究了 rapidXML 源代码并设法读取了一些值。现在我想更改它们并将它们保存到我的 XML 文件中: 解析文件并设置指针 void SettingsHandler::getConfigFil
我在我的一个项目中一直在使用 RapidXML。一切都很顺利,直到我决定用它来写出 xml。我的代码或多或少如下: //attempt to open the file for writing std
我正在尝试使用 C++ 应用程序中的 RapidXML 库在控制台中打印 XML 文档数据。 我正在遵循 RapidXML 手册 link here ,但我遇到了编译时错误。 这是我的 C++ 代码:
我有一个 XML 文件,我应该使用 RapidXML 和 C++ 对其进行解析。该文件是系统发育树。每个节点都有一个包含 1-3 个子节点的节点,每个子节点都有值。节点可以是学名、通用名或等级。我的问
我是一名优秀的程序员,十分优秀!