[xsl] Re:

Subject: [xsl] Re:
From: Joerg Heinicke <joerg.heinicke@xxxxxx>
Date: Fri, 09 Aug 2002 07:35:43 +0200
<xsl:template match="section/p[position()=1]">
  <xsl:copy>
    <xsl:copy-of select="@*"/>
    <xsl:attribute name="class">firstsentence</xsl:attribute>
    <xsl:apply-templates select="node()"/>
  </xsl:copy>
</xsl:template>


Regards,


Joerg


Phillip Rhodes wrote:
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