使用函数库而不使用<import>或<include> </include> </import>

时间:2012-12-06 20:08:48

标签: xml xslt libxslt

我有几个具有通用代码的XSL-Transformations。公共代码由使用exslt函数扩展构建的函数组成。现在我想将这些函数外包到库中,以使它们更易于维护。

转换作为资源编译为可执行文件,并在需要时从内存中读取。我想保持这种方式,并使用相同的机制库。原因是,可执行文件将始终知道它们的位置,并且不需要路径配置 现在我的问题是:如何导入外部样式表,该样式表以字符串的形式提供,并且不作为文件提供?

解决问题的一种方法是将样式表写入临时文件并加入这些文件。问题是,临时文件的文件名每次都会改变,所以我必须操纵主转换来包含临时文件名。在这种情况下,参数不起作用。

关于如何解决这个问题的任何想法,哪些应该是微不足道的?

环境:libxml2,libxslt(xslt 1.0),exslt扩展,​​Linux。

谢谢,
斯特

1 个答案:

答案 0 :(得分:0)

感谢Dimitre和Michael让我朝着正确的方向前进。

URIResolver-Mechanism在libxml中称为“catalog”,直接工作(对于简单的用例):

  1. 包括“libxml / catalog.h”
  2. 使用函数“xmlInitializeCatalog”
  3. 初始化系统目录
  4. 使用“xmlCatalogAdd”
  5. 添加分辨率映射
  6. 使用“xmlCatalogCleanup”清理,
  7. 感谢您的提示,
    斯特