gpt4 book ai didi

c++ - RapidXML,读取和保存值

转载 作者:数据小太阳 更新时间:2023-10-29 02:28:14 27 4
gpt4 key购买 nike

我自己研究了 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com