XML/XSLT stylesheet/string

Материал из Web эксперт
Версия от 11:26, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

value-of select="string(name(node()))"

File: Data.xml
<elements>
  <element_A>
    textA_1
    <command>element_B</command>
    textA_2
  </element_A>
  <element_B>
    textB_1
    <command>element_C</command>
    textB_2
  </element_B>
  <element_C>textC_1 textC_2</element_C>
</elements>

File: Transform.xslt
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">
  <xsl:output method="html" indent="yes" />
  <xsl:template match="/">
    <xsl:variable name="getValue">
      <xsl:call-template name="recursion">
        <xsl:with-param name="n" select="count(//*)" />
      </xsl:call-template>
    </xsl:variable>
    <xsl:value-of select="$getValue" />
  </xsl:template>
  <xsl:template name="recursion">
    <xsl:param name="n" />
    <xsl:if test="number($n) > 0">
      <xsl:value-of select="string(name(node()))" />
      <xsl:text> </xsl:text>
      <xsl:value-of select="$n" />
      &#13;
      <xsl:call-template name="recursion">
        <xsl:with-param name="n" select="number($n) -1" />
      </xsl:call-template>
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>
Output:
elements 6elements 5elements 4elements 3elements 2elements 1