web-dev-qa-db-ja.com

Javaパラメータ付きのXSL変換

外部ソースからのパラメーターを使用する必要があるxslファイルがあります。 Javaを使用していますが、コードは次のようになります。

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer xsltTransformer = transformerFactory.newTransformer(xsltSource);
xsltTransformer.setParameter(parameterName, parameterValue);

ただし、2行目で例外がスローされます---変数またはパラメーター 'variable_name'は未定義です。 XSLがコンパイルされ、おそらくトランスフォーマーの作成時にコンパイルされることに気付きました。

では、どのようにしてパラメータを変換に渡すのですか? setParameterメソッドはどのように使用されることになっていますか?

23
Anirudh

次のようなパラメータを渡す場合:

transformer.setParameter("render_id", "1234");

パラメータは、変換によって取得できます。

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

<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes"/>

<!-- Receives the id of the menu being rendered. -->
<xsl:param name="render_id" />
54
rsp

rspの答えは的確でした。ありがとう。同じ方法でパラメーターを変数に渡すことはできないことを追加したいだけです(私はJavaのTransformerFactoryを介してパラメーターを設定しています)。

私は変数とパラメータが交換可能であると考えるのを間違えました:)

2
TinyRacoon