1

node_xslt モジュールを介して nodejs から EXSLT node-set 関数を使用しようとしています。これは、入手可能な EXSLT をサポートする libxslt ライブラリの単純なラッパーです。しかし、exsl:node-set への参照は、私の使用方法です。

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns:exsl="http://exslt.org/common"
                    extension-element-prefixes="exsl">

<xsl:variable name="variable">
  <item />
  <item />
</xsl:variable>

    <xsl:variable name="result" select="exsl:node-set($variable)"/>

これはエラーです:

xmlXPathCompOpEval: 関数 node-set が見つかりません XPa​​th エラー: 登録されていない関数のランタイム エラー: ファイル ./JayDataContextGenerator_OData_V2.xslt 行 58 要素 for-each 'select' 式の評価に失敗しました。

更新: node_xslt プラグインの作成者である Bahblah が github でプロジェクトを更新したため、上記の変換はそれ以上苦労せずに実行されます。

4

1 に答える 1

2

最後に、xsltproc.c を調べて、次の追加を node_xslt.c に追加する必要がありました。

頂点に:

#include <libexslt/exslt.h>
#include <libexslt/exsltconfig.h>

そして138行目まで、FUNCTION( transform )に

exsltRegisterAll();

次のように wscript を拡張します。

obj.lib = ['xml2', 'xslt', 'exslt']

次に、node_xsltを再構築する必要がありました

node-waf build

この exsl:node-set() の後、魅力のように機能します。

于 2012-07-21T14:48:23.463 に答える