This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re:
- From: Joerg Heinicke <joerg dot heinicke at gmx dot de>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Fri, 09 Aug 2002 07:35:43 +0200
- Subject: [xsl] Re:
- References: <5.1.0.14.0.20020808220021.00a5b310@mail.telerama.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
<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