我正在尝试为 libxslt (c++) 创建一个 xslt 扩展函数。我的扩展函数接受一个字符串作为输入,然后这个字符串被xml解析器解析,函数返回这个解析的xml。我通过这个表达式返回值:
void fnParse(xmlXPathParserContextPtr ctx, int nargs)
{
...
xmlXPathReturnNodeSet(ctx, xmlXPathNodeSetCreate(node));
}
但是我发现 libxslt 在使用后不会释放节点内存。它释放 xmlNodeSet,但不释放存储在此节点集中的节点。也许我错过了一些重要的事情。在扩展函数中返回 XML 节点的正确方法是什么?