如何使用 boost::property_tree::write_xml 设置目标 XML 文档类型?

How to set target XML doctype using boost::property_tree::write_xml?

我想通过 boost::property_tree::write_xml 设置生成的 XML 文档的 DOCTYPE:

#include <string>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>

int main()
{
    using ptree = boost::property_tree::ptree;

    ptree pt;
    pt.put("ExampleKey", "ExampleValue");
    
    std::ofstream file("test.xml");
    boost::property_tree::write_xml(file, pt);

}

我试过 xml_writer_settings,但关于它的有用文档很少(说实话)。所以我什至不知道它是否有帮助,或者它的目的是否完全不同。

如何在boost::property_tree::write_xml生成的XML中设置DOCTYPE?

你不能。不出所料,Boost 属性 Tree 不是 XML 库。这是一个 属性 树库。

要编写 XML,请考虑使用 XML 库:What XML parser should I use in C++?

然后,可能存在使用未记录接口的黑客行为:removing encoding attribute from xml using boost

这样你就可以有效地绕过文档编写代码,你可以用你自己的 hack.

代替它