[no subject]

From: Phillip Rhodes <rhodespc@xxxxxxxxxxxx>
Date: Thu, 08 Aug 2002 22:11:43 -0400
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



Current Thread