Hi everyone on the list.
I am trying to get the first "p" element of a section and replace it with 
<p class="firstsentence"> for CSS.
What is occurring is that the first p of each section is being matched, but 
instead of replacing the matched p, it will make that matched "p" a child 
of a new element "p".
The troublesome part of this is that the content of the p may have elements 
like font, table, etc, that I want copied to the output tree.  I cannot 
count on a structure within the "p" element.
Here is my xml doc:
<html>
        <section>
                <p>Some text content</p>
                <p>Some more text content</p>
        </section>
</html>
after transformation: (happening now)
<html>
        <section>
                <p class="firstsentence">
                        <p>Some text content</p>
                </p>
                <p>Some more text content</p>
        </section>
</html>
What i want:
<html>
        <section>
                <p class="firstsentence">
                        Some text content
                </p>
                <p>Some more text content</p>
        </section>
</html>
Here is a snipet from my xsl:
<xsl:template match="/">
        <xsl:apply-templates/>
</xsl:template>
<xsl:template match="node()">
  <xsl:copy>
        <xsl:copy-of select="@*"/>
    <xsl:apply-templates select="node()"/>
  </xsl:copy>
</xsl:template>
<xsl:template match="html">
<html>
<head>
<link rel="stylesheet" type="text/css"
href="http://test.rhoderunner.com/hra.css" />
</head>
  <xsl:copy>
      <xsl:copy-of select="@*"/>
      <xsl:apply-templates select="node()"/>
  </xsl:copy>
</html>
</xsl:template>
<xsl:template match="section/p[position()=1]">
<p class="firstsentence">
  <xsl:copy>
      <xsl:copy-of select="@*"/>
      <xsl:apply-templates select="node()"/>
  </xsl:copy>
</p>
</xsl:template>
Thanks.  I getting farther!
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list