ViJu
Новичок
Поведение setParameter
Проблема в невозможности передачи в XSLT строкового параметра содержащего как одинарные так и двойные кавычки, но насколько я понимаю таковой не должно быть по спецификации, и если меня читают люди программирующие на parser3, который работает с XML через теже libxml2 libxslt, то вот вам факт: В ПАРСЕРЕ ЭТО РАБОТАЕТ
Вот PHP код:
<?PHP
// XSL преобразование
if (@$_GET['file']) {
if (@$_GET['xsl']) {
$xslfile=$_GET['xsl'];
} else {
$xslfile='auto.xslt';
}
print transform($_GET['file'],$xslfile);
}
function transform($xmlfile,$xslfile) {
$xml = new DomDocument;
$xml->load($xmlfile);
$xsl = new DomDocument;
$xsl->load($xslfile);
$proc = new xsltprocessor;
$proc->importStyleSheet($xsl);
$value = <<<EOD
<div onclick="javascript: alert('asas')">asas</div>
EOD;
$proc->setParameter('', 'test', $value);
return $proc->transformToXML($xml);
}
Ошибка:
Warning: XSLTProcessor::transformToXml(): Cannot create XPath expression (string contains both quote and double-quotes) in C:\www\......\xsltr.php on line 27
XSLTproc.exe выдает туже ошибку: string contains both quote and double-quotes
Давайте нажалуемся Кристиану Стокеру?
Проблема в невозможности передачи в XSLT строкового параметра содержащего как одинарные так и двойные кавычки, но насколько я понимаю таковой не должно быть по спецификации, и если меня читают люди программирующие на parser3, который работает с XML через теже libxml2 libxslt, то вот вам факт: В ПАРСЕРЕ ЭТО РАБОТАЕТ
Вот PHP код:
<?PHP
// XSL преобразование
if (@$_GET['file']) {
if (@$_GET['xsl']) {
$xslfile=$_GET['xsl'];
} else {
$xslfile='auto.xslt';
}
print transform($_GET['file'],$xslfile);
}
function transform($xmlfile,$xslfile) {
$xml = new DomDocument;
$xml->load($xmlfile);
$xsl = new DomDocument;
$xsl->load($xslfile);
$proc = new xsltprocessor;
$proc->importStyleSheet($xsl);
$value = <<<EOD
<div onclick="javascript: alert('asas')">asas</div>
EOD;
$proc->setParameter('', 'test', $value);
return $proc->transformToXML($xml);
}
Ошибка:
Warning: XSLTProcessor::transformToXml(): Cannot create XPath expression (string contains both quote and double-quotes) in C:\www\......\xsltr.php on line 27
XSLTproc.exe выдает туже ошибку: string contains both quote and double-quotes
Давайте нажалуемся Кристиану Стокеру?