From: ifland at gmail dot com Operating system: All PHP version: 5.2.1 PHP Bug Type: XSLT related Bug description: DOMDocument / DOMNode parameters
Description: ------------ As far as I can tell, the setParameter() function (http://php.net/xsl_xsltprocessor_set_parameter) doesn't support passing DOMDocument objects or DOMNode objects as parameters. I was hoping to get it to work like it does in the .NET 2.0 framework. (See http://msdn2.microsoft.com/en-us/library/system.xml.xsl.xsltargumentlist.addparam.aspx) But after looking at the PHP 5.2.1 source code, /php-5.2.1/ext/xsl/xsltprocessor.c line 604-650, it appears that it's not possible to do so in PHP even though it appears that libxslt supports it (see http://xmlsoft.org/XSLT/html/libxslt-variables.html#xsltParseGlobalParam) Reproduce code: --------------- ... $xslt = new XSLTProcessor(); //load stylesheet ... $param = new DOMDocument(); $param->loadXML('<params><param name="value" /></params>'); $xslt->setParameter('', 'PARAMS', $param); ... //use the value like this in the XSL <xsl:param name="PARAMS" /> ... <xsl:value-of select="$PARAMS/params/param/@name" /> <!-- should output 'value' --> Expected result: ---------------- The function should take the whole XML blob that's passed in and make it available to the XSL as a global parameter variable. Actual result: -------------- Just a misleading warning ("Wrong parameter count") -- Edit bug report at http://bugs.php.net/?id=41248&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=41248&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=41248&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=41248&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=41248&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=41248&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=41248&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=41248&r=needscript Try newer version: http://bugs.php.net/fix.php?id=41248&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=41248&r=support Expected behavior: http://bugs.php.net/fix.php?id=41248&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=41248&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=41248&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=41248&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=41248&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=41248&r=dst IIS Stability: http://bugs.php.net/fix.php?id=41248&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=41248&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=41248&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=41248&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=41248&r=mysqlcfg