[xsl] Output the Value of Element without its Child Elements

Subject: [xsl] Output the Value of Element without its Child Elements
From: "Renick, Garrel" <garrel@xxxxxxxx>
Date: Thu, 14 Jul 2005 17:21:53 -0500
I need help with outputting the value of an element without its
children. For example, my XML looks like:

  <STANDARD>
    <GRADE>Grades Pre-K-2</GRADE>
    <TOPIC ID="1" >
      <![CDATA[Students will use the skills and strategies of the
reading process to comprehend, interpret, evaluate, and appreciate what
they have read.]]>
      <TOPIC id="2"><![CDATA[Seek out and enjoy experiences with books
and other print materials.]]></TOPIC>
      <!-- there may be many nested subtopics here -->
    </TOPIC>
  </STANDARD>

I would like to recursively call a template to output the contents of
the
TOPIC element (that may be nested), but I don't want to output the value
of the child elements. For example, this XSL:

  <xsl:template match="TOPIC">
    <xsl:choose>
      <xsl:when test="child::*[self::TOPIC]">
        <xsl:value-of select="./@id"/>
        <br/>
        <xsl:value-of select="."/>
        <xsl:apply-templates select="./TOPIC"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="./@id"/>
        <br/>
        <xsl:value-of select="."/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

Produces the following:

1
Students will use the skills and strategies of the reading process to
comprehend, interpret, evaluate, and appreciate what they have read.Seek
out and enjoy experiences with books and other print materials.

I would like to output:

1
Students will use the skills and strategies of the reading process to
comprehend, interpret, evaluate, and appreciate what they have read.
2
Seek out and enjoy experiences with books and other print materials.

Current Thread