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