XSL noob здесь: -)
У меня есть следующий шаблон, который используется для создания раскрывающегося списка для моего сценария ANT.
<!-- Dropdown templates -->
<xsl:template name="componentDropdown">
<xsl:text>trunk</xsl:text>
<!-- Branch Data -->
<xsl:for-each select="document('../../../temp/components_branches.xml')/lists/list/entry">
<xsl:sort select="commit/@revision" order="descending" />
<xsl:text>;branches/</xsl:text>
<xsl:value-of select="name" />
</xsl:for-each>
<!-- Tag Data -->
<xsl:for-each select="document('../../../temp/components_tags.xml')/lists/list/entry">
<xsl:sort select="commit/@revision" order="descending" />
<xsl:if test="name != 'archive'">
<xsl:text>;tags/</xsl:text>
<xsl:value-of select="name" />
</xsl:if>
</xsl:for-each>
</xsl:template>
Дело в том, что у меня это задание трижды перерезано и вставлено - все то же самое, но ссылка на «компоненты» заменяется на «плагины» и «веб-сайт».У нас есть еще несколько ANT-скриптов, которые я бы хотел перенести на это, так что в идеале мне бы хотелось, чтобы это был какой-то шаблон на основе многократного использования.
Работа в процессе, но в настоящее время у меня есть следующее: -
<xsl:template name="dropdown">
<xsl:param name="type">website</xsl:param>
<xsl:param name="path"></xsl:param>
<!-- Branch Data -->
<xsl:text><xsl:value-of select="$path" /></xsl:text>
<xsl:for-each select="document(concat('../../../temp/{$type}_tags.xml',''))/lists/list/entry">
<xsl:sort select="commit/@revision" order="descending" />
<xsl:text>;branches/</xsl:text>
<xsl:value-of select="name" />
</xsl:for-each>
</xsl:template>
Кажется, проблема в том, что функция documnet () принимает динамические переменные.
Единственное, что я могу сказать, это то, что XSL объявлен как 1.0.Я не знаю, если это имеет значение, но любые указатели приветствуются:).
Ура, Джеймс