如何在xslt中分隔双引号

时间:2013-06-19 14:07:55

标签: xslt quotes

以下产生xslt编译错误:

<asp:hiddenfield runat="server" value="<xsl:value-of select="string[position()=2]"/>"  id="<xsl:value-of select="$ActionID"/>"></hiddenfield>

如何才能正确地使用此声明?我尝试过以下几点,但都没有成功: 。 。 。     “     “      。 。 。     “id =”“/&gt;

<asp:hiddenfield runat="server" value="<xsl:value-of    select=&quot;string[position()=2]&quot;/>" id="<xsl:value-of select=&quot;$ActionID&quot;/>"></hiddenfield>

<asp:hiddenfield runat="server" value="<xsl:value-of select='string[position()=2]'/>" id="<xsl:value-of select='$ActionID'/>"></hiddenfield>

<asp:hiddenfield runat="server" value=&quot;<xsl:value-of select="string[position()=2]"/>&quot; id=&quot;<xsl:value-of select="$ActionID"/>&quot;></hiddenfield>

使用concat,&amp;#34,&amp;#39等其他一些不成功的尝试。我哪里错了?非常感谢提前做出的所有回复。

1 个答案:

答案 0 :(得分:2)

您需要在此处使用属性值模板!

尝试使用此代码

<asp:hiddenfield runat="server" value="{string[position()=2]}"  id="{$ActionID}"></asp:hiddenfield>

在属性中使用花括号时,这表示它是要计算的表达式,而不是按字面输出。

这是另一种方法。

<asp:hiddenfield runat="server">
   <xsl:attribute name="value">
       <xsl:value-of select="string[position()=2]"/>
   </xsl:attribute>
   <xsl:attribute name="id">
       <xsl:value-of select="$ActionID"/>
   </xsl:attribute>

但是,正如您所看到的,这更加冗长。如果您想要动态属性名称,或者只想在某些条件下输出属性,则只需要使用 xsl:attribute