|
Subject: RE: [xsl] can't conditionally format first occurence of a node From: "Aron Bock" <aronbock@xxxxxxxxxxx> Date: Sun, 26 Jun 2005 04:35:54 +0000 |
<?xml version="1.0" encoding="utf-8"?> <TEI.2> <text> <body> <entryFree> <otherstuff1>stuff1</otherstuff1> <otherstuff2>stuff2</otherstuff2> <otherstuff3>stuff3</otherstuff3> <sense n="1">blah1</sense> <sense n="2">blah2</sense> <sense n="3">blah3</sense> </entryFree> </body> </text> </TEI.2>
<xsl:variable name="sense-1" select="//sense[position() = 1][1]"/>
<xsl:template match="node()|@*">
<xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>
</xsl:template> <xsl:template match="sense">
<xsl:if test="generate-id(.) = generate-id($sense-1)">
<br/>
</xsl:if>
<xsl:copy-of select="."/>
</xsl:template><?xml version="1.0" encoding="UTF-8"?>
<TEI.2>
<text>
<body>
<entryFree>
<otherstuff1>stuff1</otherstuff1>
<otherstuff2>stuff2</otherstuff2>
<otherstuff3>stuff3</otherstuff3>
<br/>
<sense n="1">blah1</sense>
<sense n="2">blah2</sense>
<sense n="3">blah3</sense>
</entryFree>
</body>
</text>
</TEI.2>From: jeremy <jeremy_march@xxxxxxxxxxx> Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: RE: [xsl] can't conditionally format first occurence of a node Date: Sat, 25 Jun 2005 20:12:18 -0400
Thanks for your reply. Here's an input sample and two stylesheets which don't quite work.
Sample xml: <?xml version="1.0" encoding="utf-8"?> <TEI.2> <text> <body> <entryFree> <otherstuff1>stuff1</otherstuff1> <otherstuff2>stuff2</otherstuff2> <otherstuff3>stuff3</otherstuff3> <sense n="1">blah1</sense> <sense n="2">blah2</sense> <sense n="3">blah3</sense> </entryFree> </body> </text> </TEI.2>
This stylesheet puts the <br />'s in the wrong place (not before the first <sense>.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="sense"> <xsl:if test="position()=1"> <br /><br /><br /> </xsl:if> <br /><div><b><xsl:value-of select="@n"/></b>. <xsl:apply-templates /></div> </xsl:template> </xsl:stylesheet>
This stylsheet puts the <br />'s in the right place but doesn't include the "otherstuff" content.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="entryFree"> <xsl:apply-templates select="orth" /> <xsl:for-each select="sense"> <xsl:if test="position()=1"> <br /><br /><br /> </xsl:if> <br /><div><b><xsl:value-of select="@n"/></b>. <xsl:apply-templates /></div> </xsl:for-each> </xsl:template> </xsl:stylesheet>
| Current Thread |
|---|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] can't conditionally forma, jeremy | Thread | RE: [xsl] can't conditionally forma, jeremy |
| RE: [xsl] can't conditionally forma, Aron Bock | Date | RE: [xsl] Counting preceding nodes, mike@xxxxxxxxxxxx |
| Month |