我正在研究XSLT,它需要使用XSL 1.0将XML代码转换为XHTML
我需要动态div id来使div崩溃和扩展。
示例:
<xsl:for-each select="queryresult/queryrows/row">
<!--Some Code -->
<div id="headingOne" role="tab" class="panel-heading">
<!--some code -->
</div>
<div aria-labelledby="headingOne" role="tabpanel" class="panel-collapse collapse" id="collapseOne">
<!--some code-->
</div>
</xsl:for-each>
我想为XML中的每一行重复此块。但是获得独特的DIV id,例如headingOne,headingTwo等。有什么线索吗?
答案 0 :(得分:2)
您可以使用
<xsl:for-each select="queryresult/queryrows/row">
<!--Some Code -->
<div id="{generate-id()}" role="tab" class="panel-heading">
<!--some code -->
</div>
<div aria-labelledby="{generate-id()}" role="tabpanel" class="panel-collapse collapse" id="collapseOne">
<!--some code-->
</div>
</xsl:for-each>
使用生成的id值(格式取决于所使用的XSLT处理器,每次执行XSLT时值都可以更改)或者你可以使用
<xsl:for-each select="queryresult/queryrows/row">
<!--Some Code -->
<div id="heading{position()}" role="tab" class="panel-heading">
<!--some code -->
</div>
<div aria-labelledby="heading{position()}" role="tabpanel" class="panel-collapse collapse" id="collapseOne">
<!--some code-->
</div>
</xsl:for-each>
您将获得heading1
,heading2
等等。如果您确实要为One
,Two
等数字生成英语单词,则需要更多工作。