Subject: Re: [xsl] Global variable in included stylesheet From: "Joerg Heinicke" <joerg.heinicke@xxxxxx> Date: Thu, 21 Feb 2002 09:03:34 +0100 |
Hello Andrey, include means, that every template in 2.xsl is copied to 1.xsl and will be used there. Your 2.xsl-template can't work as expected, because your global variable is empty. You only have a local variable declared in the first template in 1.xsl. You may not handle variables like in Java or other programming languages. In XSLT it's not possible to reassign a value to them. If you change your first variable declaration in 1.xsl to <xsl:variable name="DefaultLanguageID" select="/global-settings/parameter[@name='DefaultLanguageID']/@value"/>, you will see the expected output. Now the global variable has the value. Regards, Joerg ----- Original Message ----- From: "Andrey Astakhov" <paranorm@xxxxxxxxx> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Sent: Thursday, February 21, 2002 8:02 AM Subject: [xsl] Global variable in included stylesheet > Hello! > > I have xml file (global.xml) and two xsl files (1.xsl, 2.xsl). > File global.xml is transformed with the stylesheet 1.xsl. > File 2.xsl is included in 1.xsl. > > This files here: > > File global.xml > > <?xml version="1.0"?> > <global-settings> > > <supporting-languages> > <language ID="En" caption="English"/> > <language ID="De" caption="German"/> > </supporting-languages> > > <parameter name="DefaultLanguageID" value="En"/> > <parameter name="DefaultMenuItemID" value="miCommonInformation"/> > > </global-settings> > > > -------------------------------------------------- > > File 1.xsl > > <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:include href="2.xsl"/> > > <xsl:variable name="DefaultLanguageID"/> > > <xsl:template match="global-settings"> > <xsl:variable name="DefaultLanguageID" select="parameter[@name='DefaultLanguageID']/@value"/> > > <!-- Display variable value in 1.xsl --> > > <hr/> > [1.xsl]: <xsl:value-of select="$DefaultLanguageID"/> > <hr/> > > <xsl:apply-templates select="parameter"/> > > </xsl:template> > > </xsl:stylesheet> > > ----------------------------------------------------- > > File 2.xsl > > <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > > <xsl:template match="parameter"> > > It is the parameter > > <!-- Display variable value in 2.xsl --> > > [2.xsl]: <xsl:value-of select="$DefaultLanguageID"/> > <br/> > </xsl:template> > > </xsl:stylesheet> > > ---------------------------------------------------- > > > > > After the transforming i see: > > ----------------- > [1.xsl]: En > ----------------- > It is the parameter > [2.xsl]: > It is the parameter > [2.xsl]: > > > The problem - i cann't get the value of global variable $DefaultLanguageID in included stylesheet 2.xsl. > I thought all global variables must be available anywhere. > > Is it wrong? > How can i obtain $DefaultLanguageID in 2.xsl? > > ...and sorry for my poor English... > > Best regards, > Andrey > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Global variable in included s, Andrey Astakhov | Thread | RE: [xsl] Global variable in includ, Michael Kay |
Re: [xsl] Loosing encoding informat, Ragulf Pickaxe | Date | [xsl] SAXON:: Got error on executin, laksh vr |
Month |