【发布时间】:2018-11-24 07:46:16
【问题描述】:
我正在实现几个库(libxslt、libxml2、libexslt) 用于我程序中的 XSLT 处理。我包含了头文件和 .so 文件以将库链接到程序,发现链接效果很好。
下面是在我的程序中使用库的一些函数实现XSLT处理的代码,结果前两行运行良好,但在最后一行产生了错误。
style=xsltParseStylesheetFile(stylesheetfile);
input=xmlParseFile(inputfile);
output=xsltApplyStylesheet(style, input,0); //error
//错误
xmlXPathCompOpEval:找不到函数节点集
XPath 错误:未注册的函数
同样的 XSLT 处理使用 xsltproc 运行良好工作。
我知道 node-set 函数在 libexslt 中。 但为什么它不起作用? 是图书馆的链接问题吗?特别是 libexslt? 还是配置? 你们知道这个错误的任何解决方案吗? 非常感谢您的帮助。 谢谢。
【问题讨论】:
-
你打电话给
exsltRegisterAll();了吗,就像xsltproc在gitlab.gnome.org/GNOME/libxslt/blob/master/xsltproc/…做的那样?据我了解,仅包括标头和链接到库并不能启用扩展功能。要使用node-set函数,注册通用扩展函数当然就足够了。 -
@MartinHonnen 不,我没有调用
exsltRegisterAll();现在我调用了该函数并且它起作用了。非常感谢,我真的很感激:) -
我已将评论中的建议转换为答案,以便您可以将您的问题标记为已解决。
标签: xml xslt libxml2 libxslt node-set