0
xsl(1.0)でパラメータを渡すことができません。 「選択」の内容を動的に変更することはできないようです。事前にxslt apply-template
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output cdata-section-elements="" encoding="UTF-8" indent="yes" method="xml" omit-xml-declaration="yes"/>
<xsl:param name="entity">CreditController[]</xsl:param>
<xsl:template match="/">
<xsl:element name="variable">
<xsl:attribute name="type">NameValuePair[]</xsl:attribute>
<xsl:apply-templates select="variable/*[@type='$entity']/item"/>
</xsl:element>
</xsl:template>
<xsl:template match="item">
<xsl:element name="item">
<xsl:attribute name="type">NameValuePair</xsl:attribute>
<xsl:element name="value">
<xsl:attribute name="type">String</xsl:attribute>
<xsl:value-of select="Code"/>
</xsl:element>
<xsl:element name="name">
<xsl:attribute name="type">String</xsl:attribute>
<xsl:value-of select="Code"/>-<xsl:value-of select="Value"/>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
ありがとう:以下はエラーをスローしますが$エンティティパラメータの認識に失敗しない試みがあります。他の投稿は、要素の 'Mode'属性を使用して設定することを推奨するように思われました。私はこれらのいずれかで勝てなかった。
エンティティ変数を文字列リテラル 'CreditController []'に置き換えると、正常に動作します。
あなたの入力XMLのサンプルを投稿することができますか? –
'@ type = $ entity'でなければならないのでしょうか? '$ entity'を引用符で囲むことで' $ entity'という文字列になります。 –
アビラの答えは正しいと思います。答えとして受け入れられるはずです。 –