2015-12-28 6 views
1

Я работаю на XSLT, который нужно преобразовать код XML в XHTML с помощью XSL 1.0Динамический Div идентификатор внутри XSLT

мне нужен динамический Див идентификатор для создания коллапса Див и расширяться.

Пример:

<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, такой как headingOne, заголовокTwo и т. Д. Любой подсказки?

ответ

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> 

использовать значение, генерируемый идентификатор (формат зависит от процессора 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, вам нужно больше работы.

Смежные вопросы