Можно ли применить шаблон к параметру xsl перед применением временных параметров к xml
Вопрос
У меня есть параметр xsl, который представляет собой строку.Я хочу разобрать эту строку, разделить ее и для каждого значения подстроки применить шаблон в xsl.
Возможно ли это?Если да, не могли бы вы, пожалуйста, посоветовать оптимистичное решение?
Спасибо
Решение
Редактировать:Не понял вопроса, извините.
Ответ таков ДА.
Входные данные:
<secuence>Item1 Item2 Item3</secuence>
Таблица стилей:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="secuence/text()" name="secuence">
<xsl:param name="string" select="."/>
<xsl:param name="separator" select="' '"/>
<xsl:if test="$string != ''">
<xsl:choose>
<xsl:when test="contains($string,$separator)">
<xsl:call-template name="secuence">
<xsl:with-param name="string" select="substring-before($string,$separator)"/>
<xsl:with-param name="separator" select="$separator"/>
</xsl:call-template>
<xsl:call-template name="secuence">
<xsl:with-param name="string" select="substring-after($string,$separator)"/>
<xsl:with-param name="separator" select="$separator"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<!-- Your desired template -->
<Item>
<xsl:value-of select="$string"/>
</Item>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Результат:
<secuence>
<Item>Item1</Item>
<Item>Item2</Item>
<Item>Item3</Item>
</secuence>
Другие советы
не уверены, что вы имеете в виду, но копирование этого шаблона могут помочь:
Не связан с StackOverflow