我有以下内容:
<xsl:template match="MapSet">
<div class="mapset" id="position()">
<Content of div here>
</div>
</xsl:template>
我想在position()所在的位置有不同的id。我想一次只能看到一个div。ID会帮我的。
我想要这样的输出:
<div class="mapset" id="id1">
<Content of div1 here>
</div>
<div class="mapset" id="id2">
<Content of div2 here>
</div>
<div class="mapset" id="id3">
<Content of div3 here>
</div>
有什么想法吗?
我使用了以下代码来解决这个问题:
<div class="mapset">
<xsl:attribute name="id">mapset<xsl:number/></xsl:attribute>
</div>
它现在输出:
<div class="mapset" id="mapset1">
<Content of div1 here>
</div>
<div class="mapset" id="mapset2">
<Content of div2 here>
</div>
<div class="mapset" id="mapset3">
<Content of div3 here>
</div>
您已经成功回答了您的问题,这很好!但是您知道"属性值模板"吗,它提供了一种替代方法。
试试这个,例如
<div class="mapset" id="mapset{position()}">
<Content of div here>
</div>
属性值模板由大括号表示。它们表示要计算的表达式,而不是按字面意思输出的表达式。这也应该为您提供所需的输出。
属性值模板通常是首选模板,因为它们比编写xsl:Attribute更不冗长,而且语法更接近最终输出。