[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: Can you pass a parameter from a stylesheet to the
Subject: Re: Can you pass a parameter from a stylesheet to the resultingHTML file?
From: Joerg Heinicke <joerg.heinicke@xxxxxx>
Date: Tue, 04 Jun 2002 20:55:30 +0200
|
Hello Kathryn,
add these templates to the stylesheets:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
version="1.0">
<xsl:output method="xml" encoding="UTF-8"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xhtml:ol[@start='var']">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:attribute name="start">
<xsl:value-of select="count(preceding::xhtml:ol/xhtml:li) + 1"/>
</xsl:attribute>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
The second xsl file filters out any <li> item with a class of "mgronly":
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
version="1.0">
<xsl:output method="xml" encoding="UTF-8"/>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xhtml:ol[@start='var']">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:attribute name="start">
<xsl:value-of
select="count(preceding::xhtml:ol/xhtml:li[not(@class='mgronly')]) + 1"/>
</xsl:attribute>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xhtml:li[@class='mgronly']"/>
</xsl:stylesheet>
Here's what I'm trying to do: In the first transformation, I need to
replace "var" in the second <ol> tag with "4".
In the second transformation, because one of the preceding <li> items is
filtered out, I need to replace "var" with "3". (I don't need to have the
XSL files count the <li> items to compute the "4" and "3", unless it's very
easy. I can just hard code "4" and "3".) Is there a way to do this?
Thanks again for all your help--
Kathryn
Regards,
Joerg
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|