Книга: 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>

Оглавление книги


Генерация: 0.044. Запросов К БД/Cache: 0 / 2
поделиться
Вверх Вниз