Книга: XSLT
concat()
concat()
Функция concat
объединяет вместе все переданные ей строки и возвращает полученную строку:
concat(string string1, string string2, ...)
В качестве примера рассмотрите разработанный ранее вариант таблицы стилей planets.xsl
, отображающей значения элементов и значения атрибутов UNITS
, в котором шаблоны применяются следующим образом:
<xsl:template match="MASS">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<xsl:value-of select="@UNITS"/>
</xsl:template>
Такой код отображает строковое значение, контекстный узел, пробел и строковое значение атрибута UNITS. Но код можно значительно сократить при помощи функции concat
(листинг 8.8).
Листинг 8.8. Применение функции concat
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/PLANETS">
<HTML>
.
.
.
</HTML>
</xsl:template>
<xsl:template match="PLANET">
<TR>
<TD><xsl:value-of select="NAME"/></TD>
<TD><xsl:apply-templates select="MASS"/></TD>
<TD><xsl:apply-templates select="RADIUS"/></TD>
<TD><xsl:apply-templates select="DAY"/></TD>
</TR>
</xsl:template>
<xsl:template match="MASS">
<xsl:value-of select="concat(., ' ', @UNITS)"/>
</xsl:template>
<xsl:template match="RADIUS">
<xsl:value-of select="concat(., ' ', @UNITS)"/>
</xsl:template>
<xsl:template match="DAY">
<xsl:value-of select="concat(., ' ', @UNITS)"/>
</xsl:template>
</xsl:stylesheet>