2

次のコードでは、ここで「$type」とは何か、どのように使用されているかを理解したいと思います。

「$type」を使用して条件が適用されている場合の方法。

<xsl:template name="CodValue">
<xsl:param name="type"/>         
<xsl:param name="nodeNM">category</xsl:param>                  
<xsl:element name="{$nodeNM}">             
<xsl:if test="$type">                 
<xsl:attribute name="xsi:type">                     
<xsl:value-of select="$type"/>                 
</xsl:attribute>             
</xsl:if>
</xsl:element> 
</xsl:template> 
4

2 に答える 2

0

$XPath 式内の変数を参照するために使用されます。

この特定のケースで$typeは、 は によって先に宣言されてい<xsl:param name="type"/>ます。ただし、値が指定されていない<xsl:with-param>ため、値を提供できるようにテンプレートを呼び出すときに使用する必要があります。

nb 変数$nodeNMにはデフォルト値が与えられているため、テンプレートを呼び出すときにそれを指定する必要はありません。

于 2013-08-19T13:20:33.843 に答える
0

このテンプレートでは、パラメーターが必要です。もう 1 つはオプションですnodeNM。次のようにパラメーターを呼び出すことができます。

<xsl:call-template name="CodValue">
   <xsl:with-param name="type" select="123" />
</xsl:call-template>

また

<xsl:call-template name="CodValue">
   <xsl:with-param name="type">123</xsl:with-param>
</xsl:call-template>

type は の変数なCodValueので、次の方法で印刷できます

<xsl:value-of select="$type" />

{$type}または属性を介して。

提案:

  • $nodeNM は、タグ (HTML コードを生成する場合は html タグ) の名前のように見えます。
  • $type (xpath から true を返す場合、つまり空でない場合) は、xsi:type-Tag-Attribute を作成します。

だから電話したら

<xsl:call-template name="CodValue">
   <xsl:with-param name="type" select="123" />
</xsl:call-template>

XML は次のように変換されます。

<category xsi:type="123" />
于 2013-08-19T13:10:12.540 に答える