#35247 [Fbk->WFx]: setParameter not set if value contains single quote character ' on Windows
| From: | chregu@php.net | Date: | Thu, 17 Nov 2005 15:26:24 +0000 |
| Subject: | #35247 [Fbk->WFx]: setParameter not set if value contains single quote character ' on Windows | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-88413@lists.php.net to get a copy of this message | ||
ID: 35247
Updated by: chregu@php.net
Reported By: junkmail at eighteyes dot com
-Status: Feedback
+Status: Wont fix
Bug Type: XSLT related
Operating System: Windows 2000
PHP Version: 5.0.5
New Comment:
Right :) It generates a warning even in 5.0.x
-> Wont fix
Previous Comments:
------------------------------------------------------------------------
[2005-11-17 12:28:10] rrichards@php.net
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] chregu@php.net
Can you also check the libxslt and libxml2 version? And if
possible upgrade to the latest releases.
------------------------------------------------------------------------
[2005-11-16 21:08:30] tony2001@php.net
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