为XSLT命名每个位置的XHTML元素

时间:2012-05-07 23:16:39

标签: xml xslt position

我有一个选择下拉菜单和一个跨度,它们在javascript文件中分别称为'quantity1','quantity2'和'price1','price2'等。

在XSLT中,我需要能够将该元素的ID声明为相对于循环的位置,但不能弄清楚如何。

<span id="price<xsl:value-of select="position()"/>/>£<xsl:value-of select="price"/>">

这不起作用(显然!),socan有谁解释如何实现这个目标?

1 个答案:

答案 0 :(得分:1)

假设您在XSLT转换中创建了<span>元素,则可以使用attribute value template语法。像这样:

<span id="price{position()}">£<xsl:value-of select="price"/></span>

<span>将在xsl:for-each的模板或position()构造中创建,以便为您提供所期望的内容。

您还可以使用与您最初尝试的xsl:value-of更详细的xsl:attribute结构:

<span>
    <xsl:attribute name="id">price<xsl:value-of select="position()"/></xsl:attribute>
    £<xsl:value-of select="price"/>
</span>

属性值模板的花括号看起来更符合我的口味。