[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] A parameter current context or context passed
Subject: Re: [xsl] A parameter current context or context passed From: JBryant@xxxxxxxxx Date: Fri, 13 May 2005 14:17:42 -0500 |
Wouldn't the context always be the context of the parameter being passed in so "/" would never resolve to the source xml? -------------------------------------------- Hi, Karl, Well, when you write: <xsl:param name="something" select="whatever"/> you are creating a default value for the parameter. The whatever will only apply if no value is passed for the parameter. At that point, the only available context is the source document, so / picks up the root node of the source document. I did some quick testing. With the following source document: <?xml version="1.0" encoding="UTF-8"?> <x>ABCD</x> and the following stylesheet: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" omit-xml-declaration="no" indent="yes"/> <xsl:param name="in" select="/"/> <xsl:template match="/"> <x> <xsl:value-of select="$in"/> </x> </xsl:template> </xsl:stylesheet> I got the following output when I specified in="hello" as a parameter: <?xml version="1.0" encoding="UTF-8"?> <x>hello</x> And the following output when I left off the parameter: <?xml version="1.0" encoding="UTF-8"?> <x>ABCD</x> Tested with Saxon 8.4. I don't use unions (|) much, so I am not sure of its behavior in this situation. Jay Bryant Bryant Communication Services (presently consulting at Synergistic Solution Technologies) Karl Stubsjoen <kstubs@xxxxxxxxx> 05/13/2005 01:35 PM Please respond to xsl-list@xxxxxxxxxxxxxxxxxxxxxx To xsl-list@xxxxxxxxxxxxxxxxxxxxxx cc Subject Re: [xsl] A parameter current context or context passed > / is the document root. So I think you want just select="current()" (or > even just select="."). I would think I want "/" or "." Wouldn't the context always be the context of the parameter being passed in so "/" would never resolve to the source xml? Not sure what "/" over "." would gain in this case. I have tested my param, and it seems to work fine. I don't get the | "pipe". Is that an OR operator in this case? Or is it more like a switch? > On 5/13/05, JBryant@xxxxxxxxx <JBryant@xxxxxxxxx> wrote: > Hi, Karl, > > / is the document root. So I think you want just select="current()" (or > even just select="."). > > Untested, so I might be off. > > Jay Bryant > Bryant Communication Services > (presently consulting at Synergistic Solution Technologies) > > Karl Stubsjoen <kstubs@xxxxxxxxx> > 05/13/2005 12:48 PM > Please respond to > xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > To > xsl-list@xxxxxxxxxxxxxxxxxxxxxx > cc > > Subject > [xsl] A parameter current context or context passed > > > This should be an easy one... > > I have the following paramter: > <xsl:param name="current" select="/ | current()"/> > > As the name implies it should be the current context unless otherwise > specified. Have I written this correct?
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] A parameter current conte, Karl Stubsjoen | Thread | RE: [xsl] A parameter current conte, Michael Kay |
Re: [xsl] A parameter current conte, Karl Stubsjoen | Date | RE: [xsl] A parameter current conte, Michael Kay |
Month |