ID:               35247
 User updated by:  junkmail at eighteyes dot com
 Reported By:      junkmail at eighteyes dot com
 Status:           Wont fix
 Bug Type:         XSLT related
 Operating System: Windows 2000
 PHP Version:      5.0.5
 New Comment:

I beg to differ. It is valid XML, and it doesn't generate a warning in
5.0.5. It's valid XML, so why should it generate a warning? And more
importantly to PHP, why does it work in Linux, but not in Windows?

I have not tried the CVS on windows since I don't have a non-production
machine I can test it on.

My Linux version of libxml2: 2.6.22
My Linux version of libxslt: 1.1.15

Windows version of libxml2: 2.6.11
Windows version of libxslt: 1.1.7

Will upgrade and try see if that solves the issue.

Cheers,
  Balarama Bosch


Previous Comments:
------------------------------------------------------------------------

[2005-11-17 16:26:23] [EMAIL PROTECTED]

Right :) It generates a warning even in 5.0.x

-> Wont fix

------------------------------------------------------------------------

[2005-11-17 12:28:10] [EMAIL PROTECTED]

Chregu, This shouldn't work on any platform if I am correct. In PHP 5.1
a warning is explicity issued as this case is specifically tested in XSL
extension:
Warning: XSLTProcessor::transformToXml(): Cannot create XPath
expression (string contains both quote and double-quotes)

------------------------------------------------------------------------

[2005-11-17 06:52:59] [EMAIL PROTECTED]

Can you also check the libxslt and libxml2 version? And if 
possible upgrade to the latest releases.

------------------------------------------------------------------------

[2005-11-16 21:08:30] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip



------------------------------------------------------------------------

[2005-11-16 21:06:28] junkmail at eighteyes dot com

Description:
------------
This error ocurs when the value of the parameter set with setParameter
contains:
- an xml/html tag with an attribute
- a single quote character in the tag's value

The parameter value will not be set. The function doesn't return FALSE
either, making you think the value was successfully set. This only
happens on my Windows setup, not in Linux.

If the tag doesn't contain an attribute, or the tag's value doesn't
contain a single quote, the error does not occur.

Reproduce code:
---------------
$xml = new DOMDocument();
$xml->loadXML('<root></root>');

$xsl=new DOMDocument();
$xsl->loadXML('<?xml version="1.0" encoding="utf-8" ?><xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";><xsl:param
name="parameter">ERROR</xsl:param><xsl:template match="/"><xsl:value-of
select="$parameter" /></xsl:template></xsl:stylesheet>');

$list = <<<END
<p id="34">/CONCEPTS/God/Krishna's Incarnations/</p>
END;

$xslt = new XSLTProcessor();
$xslt->setParameter('', 'parameter', $list);
$xslt->importStyleSheet($xsl);
print $xslt->transformToXML($xml);

Expected result:
----------------
<p id="34">parameter's value</p>


Actual result:
--------------
ERROR


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=35247&edit=1

Reply via email to