RapidXML API是否可以增加缓冲区



看到RapidXml中XmlDocument::parse(Ch*)的文档,我想知道字符缓冲区是"non-const"。当缓冲区需要通过解析器的任何此类修改来增长时,我不确定这通常会如何工作。图书馆会做成长吗?如果我让它解析,它应该解析对吗?否则它应该被称为CCD_ 1或类似的东西。

我是不是错过了什么?我想了解这个库,因为我想要一个简单易用的东西来从C++动态打开和附加/编辑xml文件,但如果有更简单/更好的替代方案,请不要犹豫,提出这样的建议作为答案

RapidXML尽力成为一个就地解析器。如果不能,它将分配内存(与xml_document<>的生存期相关),但仅在必要时。字符串由于XML读取而实际增长的情况相当罕见。

它将修改字符串的内容(除非您设置了非修改标志),并且它的对象将保留对该字符串的引用。因此,您需要确保缓冲区能够存活足够长的时间。但除此之外,没什么可担心的。

Rapidxml从不需要增加缓冲区。幸运的是,UTF8编码的XML在字符串周围总是有足够的空间来插入终止的空字符并在适当的位置扩展内置字符实体。

因此,所做的唯一修改将是缓冲区的内容,而不是其大小。

最新更新