以下产生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="string[position()=2]"/>" id="<xsl:value-of select="$ActionID"/>"></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="<xsl:value-of select="string[position()=2]"/>" id="<xsl:value-of select="$ActionID"/>"></hiddenfield>
和
使用concat,&amp;#34,&amp;#39等其他一些不成功的尝试。我哪里错了?非常感谢提前做出的所有回复。
答案 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 。