Bonjour, Thanks Sebastian, you put me in the right direction.
I turns out that the newest XSLT API will NOT pass the parameters array when xslt_process() uses URIs for the XML source and the XSL sheet, like it used to with the previous versions "xslt_run()". One must use arguments for the XML and XSL content. In other words: $xslt_args = array( '/_xml' => $xml, '/_xsl' => $xsl ) ; $result = xslt_process( $xh, 'arg:/_xml', 'arg:/_xsl', NULL, $xslt_args, $xslt_params ) ==> good $xslt_args = array() ; $result = xslt_process( $xh, 'xml_content.xml', 'xsl_sheet.xsl', NULL, $xslt_args, $xslt_params ) ==> bad (the transformation works correctly, but parameters are not passed) Fortunately it did not prove necessary to turn register_globals ON. Ignatius Reilly -------------------------------------------------------------------------------- ----- Original Message ----- From: Ignatius Reilly To: [EMAIL PROTECTED] Sent: Saturday, August 17, 2002 6:10 PM Subject: Re: [Sab] Problem passing variables with PHP 4.2 Thanks Mattes, That's in fact what I am doing. My script is conform to the documentation. However, my <xsl:value-of select="{$VAR_NAME}" /> fills empty string values for the variable. The really strange thing here is that it used to work with PHP 4.0, but not any more. Could it be a variable scoping problem? Anything to do with register_globals = off (in php.ini) ? I am really puzzled ------------------------------------------------------------------------------ ----- Original Message ----- From: Matthes To: [EMAIL PROTECTED] Sent: Saturday, August 17, 2002 7:35 PM Subject: Re: [Sab] Problem passing variables with PHP 4.2 You can call your vars simply by defining <xsl:param name="lang" /> at the top of your script (after xsl headers but before templates definitions - see php online documentation, there's some comment about this) and then access them in your xsl script by calling them like <xsl:value-of select="{$VAR_NAME}" /> or so. try this: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/> <xsl:param name="lang" /> ... <xsl:value-of select="$lang" /> ... it should work ;) Matthes IR> Hi, IR> Since upgrading from PHP 4.0 to 4.2, I do not manage any longer to pass parameters from the PHP script. The XSLT transformations is performed allright, though, and use empty values for the IR> parameters defined. IR> I tried to kludge by passing parameters in the form of string arguments: IR> $xslt_args["lang"] = "<a>French</a>" ; IR> and <xsl:param name="lang" select="document('arg:/lang0')/a"/> IR> ... but here again I get a 'arg:/lang' not found error IR> I use Apache 1.3.14 on a W2K machine IR> Anybody has encountered the same problem? IR> Ignatius IR> ------------------------------------------------------------------------ IR> Archives and info: http://www.gingerall.org/charlie/ga/xml/m_ml.xml IR> Mailing list maintained by Ginger Alliance ------------------------------------------------------------------------ Archives and info: http://www.gingerall.org/charlie/ga/xml/m_ml.xml Mailing list maintained by Ginger Alliance