我想创建使用POCO库读取和写入xml的C++程序。
所以,我写了简单的程序。
我可以阅读每个xml元素。
但是我无法编写新的xml元素。
下面是test.xml。
<config>
<prop1>value1</prop1>
</config>
这是我的代码。
#include <iostream>
#include <string>
#include <Poco/AutoPtr.h>
#include <Poco/Util/XMLConfiguration.h>
using Poco::AutoPtr;
using Poco::Util::XMLConfiguration;
int main(int argc, char const* argv[])
{
AutoPtr<XMLConfiguration> pConf(new XMLConfiguration("test.xml"));
std::string prop1 = pConf->getString("prop1");
std::cout << "prop1 = " << prop1 << std::endl;
pConf->setString("prop2", "input");
pConf->save("test.xml");
return 0;
}
该程序运行后,我希望xml文件进行如下更改。
<config>
<prop1>value1</prop1>
<prop2>input</prop2> <--New element added!!
</config>
但是结果如下。
<config>
<prop1>value1</prop1>
</config>
没有改变...
我究竟做错了什么?
提前致谢。
添加了以下信息
我运行以下命令。
sudo apt-get remove ros-kinetic-desktop-full
然后,我可以使用上述程序编写xml文件。
我认为ros使用POCO库,并且它是我的POCO库的副本。
因此,我尝试将POCO库(ros)替换为POCO库(mine)。
我的尝试进行顺利!
最佳答案
解决方案如下
如果您可以使用POCO库读取xml文件而不能写入xml文件。
您的POCO库和ROS的POCO库可能重复。
尝试执行以下命令。
sudo apt-get install ros-kinetic-desktop-full
./configure --prefix = / usr
使
须藤make install