私の xsl ファイルでは、別の xml ドキュメント (変換しているメインの xml ドキュメントの横) を文字列パラメーター (param) として受け取ります。
私のパラメータ名はseconddocだと言う
<xsl:param name="seconddoc"></xsl:param>
そしてparam値は次のとおりです(繰り返しますが、すべてを文字列として取得しています)
<products>
<product>
<id>1</id>
<name>pro-1</name>
</product>
<product>
<id>2</id>
<name>pro-2</name>
</product>
<product>
<id>3</id>
<name>pro-3</name>
</product>
</products>
次のように文字列全体を印刷できます
<xsl:value-of select="$seconddoc" />
しかし、値全体を一度に取得するのではなく、データ (文字列) を反復処理したいと考えています。私の最終目標は、このデータを選択オプションにロードすることです。
私は次のように疲れました:
<select>
<xsl:for-each select="$seconddoc/products/product">
<option value="{id}">
<xsl:value-of select="name" /></option>
</xsl:for-each>
</select>
しかし、私はTransformerExceptionを取得しています。「'java.lang.String' から 'node-set' への変換が無効です。
アップデート:
これは私のjspページにあるものです
<x:transform xml="${mainxmldoc}" xslt="${xslt}">
<x:param name="seconddoc" value="<%=xmlString %>"/>
</x:transform>