Subject: RE: [xsl] Can you pass a parameter from a stylesheet to the resul ting HTML file? From: Kathryn.Grant@xxxxxxxxxxxxxxxxx Date: Tue, 4 Jun 2002 10:18:55 -0700 |
Joerg, Once again, I really appreciate your help. The problem isn't solved yet, but I think it's because I oversimplified my original explanation and code. Here's a better simplified version of my xhmtl file: <table> <tr> <td> <ol> <li>item 1</li> <li class="mgronly">item 2</li> <li>item 3</li> </ol> </td> </tr> <tr> <td> <ol start="var"> <li>item 4</li> <li>item 5</li> <li>item 6</li> </ol> </td> </tr> </table> I am transforming this document into two different documents by using two different xsl files. The first xsl file simply copies everything: <?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: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: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 Date: Sat, 01 Jun 2002 01:34:52 +0200 From: Joerg Heinicke <joerg.heinicke@xxxxxx> Subject: Re: [xsl] Can you pass a parameter from a stylesheet to the resulting HTML file? Hello Kathryn, it's a bit difficult to see, what you are doing with your two stylesheets. In general you can do it in the following: <xsl:template match="foo"> <xsl:apply-templates select="bar"> <xsl:with-param name="name-of-param" select="value-of-param"/> </xsl:apply-templates> </xsl:template> <xsl:template match="bar"> <xsl:param name="name-of-param" select="default-value-of-param"/> <xsl:value-of select="$name-of-param"/> </xsl:template> If your stylesheet below runs on the XML below, you can do something like the following: <xsl:template match="node() | @*"> <xsl:copy> <xsl:apply-templates select="node() | @*"/> </xsl:copy> </xsl:template> <xsl:template match="ol"> <ol start="{count(preceding::ol) + 1}"> <xsl:apply-templates select="node() | @*"/> </ol> </xsl:template> Regards, Joerg XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Question using xsl:if and, Charles Knell | Thread | Re: [xsl] Can you pass a parameter , Joerg Heinicke |
[xsl] Question using xsl:if and xsl, Williams, Chris D. | Date | [xsl] [java] transforming a file to, Robert Koberg |
Month |