2011-02-04 17 views
3
  • 私はnet.sf.saxon.TransformerFactoryImplを使用して複数のXMLファイルに変換を行っています。
  • 私はXMLファイルを取得するためにコレクション関数を使用しています。

XMLファイルが存在するディレクトリのパスを含む変数をスタイルシートに渡すことができますか。 Javaコードからその変数を渡したいと思います。サクソンでスタイルシートにパラメータを渡す

<xsl:for-each 
     select="for $x in(collection('MYVAR?select=*.xml;recurse=yes')) 
        return saxon:discard-document($x)//testsuites"> 

答えて

2

は単にMYVARはファイルURLでなければならないこと

<xsl:for-each select="for $x in(collection(concat($MYVAR, '?select=*.xml;recurse=yes')))return saxon:discard-document($x)//testsuites"> 

注意、ない(プラットフォーム依存)のディレクトリ・パスを使用します。

[編集]あなたのXSLTで あなたのJavaコードの使用中

<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="2.0"> 

    <xsl:param name="MYVAR"/> 

    ... 

</xsl:stylesheet> 

を必要とする方法例えばhttp://download.oracle.com/javase/6/docs/api/javax/xml/transform/Transformer.html#setParameter%28java.lang.String,%20java.lang.Object%29

transformer.setParameter("MYVAR", "file:///C:/dir/subdir/dir"); 
+0

私はあなたが私を得なかったと思います。私が尋ねるのは、Javaコード – Theo

+0

を使用してURLを$ MYVARに入れる方法です。これは動作しません。私は得ています xslGetDataToXmlJUnit.xslの9行目のエラー: FODC0004:ファイルまたはディレクトリファイル:/ Users/admin/Documents/$ MYVARが存在しません – Theo

+0

エラーメッセージは、 'concat $ MYVAR、 '?select = *。xml; recurse = yes') 'のようなものですが、' $ MYVAR?select = *。xml; recurse = yes 'のようなものです。それでも問題が解決しない場合は、十分なコードを投稿して問題を簡単に再現できるようにしてください。 –

0

あなたのスタイルシートにパラメータを使用します。

変換呼び出す前に、このようなJavaでパラメータを設定し
<xsl:param name="MYVAR" /> 

transformer.setParameter("MYVAR", 'file:/some/folder'); 

リファレンススタイルシート内のパラメータは、任意のと同じように変数またはパラメータ:

<xsl:for-each select="for $x in 
         (collection(concat($MYVAR, '?select=*.xml;recurse=yes'))) 
          return saxon:discard-document($x)//testsuites"> 
+0

これは機能しません。 xslGetDataToXmlJUnit.xslの9行目にエラーが表示されています。FODC0004:ファイルまたはディレクトリファイル:/ Users/admin/Documents/$ MYVARが存在しません。 – Theo

+0

これは私のために働きます。実際にparamを正しく設定していることを確認してください。 '$ MYVAR'の値は 'file:/ Users/admin/Documents'であり、" $ MYVAR "を含んではいけません。 –

+0

私は申し訳ありませんが、私は二重チェック、xsl:paramはtransformer.setParameterを表示しません 私はなぜ知りません。 – Theo

関連する問題