XSLT

时间:2015-12-28 10:30:22

标签: xml xslt

我正在研究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等。有什么线索吗?

1 个答案:

答案 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>

您将获得heading1heading2等等。如果您确实要为OneTwo等数字生成英语单词,则需要更多工作。