使用libxml2。我可以使用xmlSaveFormatFileEnc()
将XML打印到一个文件中。但是,有没有一种方法可以在文本字符串或流中做同样的事情呢?
我希望避免将XML写入文件并将其读回,以获得XML的漂亮打印版本。
为了记录在案,我现在做的是:
xmlInitParser();
xmlKeepBlanksDefault(0);
xmlLineNumbersDefault(1);
xmlThrDefIndentTreeOutput(1);
xmlThrDefTreeIndentString(" ");
std::string content = "....."; // do something here to get the XML
xmlDoc * doc = xmlParseDoc((xmlChar*)content.c_str());
xmlSaveFormatFileEnc("output.xml", doc, "utf-8", 1); // pretty print
2条答案
按热度按时间qyuhtwio1#
从here窃取:
然后,在写入缓冲区之后:
vmdwslir2#
只需使用xmlSaveFormatFileTo()而不是xmlSaveFormatFileEnc()https://gnome.pages.gitlab.gnome.org/libxml2/devhelp/libxml2-tree.html#xmlSaveFormatFileTo