F1please! XML & XSLT & PHP

katyakrog

Новичок
F1please! XML & XSLT & PHP

есть файл xml кот обрабатывается xsl шаблоном, в который через xsltProcessor->setParameter() передается переменная;
--------------
в php файле пишу:

xsltProcessor->setParameter('', 'text', '//items/item[@id=1] /')
------------------
в xsl:
<xsl:param name="text" />

<xsl:value-of select="$text" />
------------------
ВЫВОДИТ - саму строку "//items/item[@id=1]/", а не элементы item[@id=1]/



-------------------
в php:
// xsltProcessor->setParameter('', 'text', '//items/item[@id=1]/')
------------------
в xsl:
<xsl:param name="text" select="//items/item[@id=1]/" />

<xsl:value-of select="$text" />
------------------

все ок выводит элементы //items/item[@id=1]/
-------------------------------------------------

ОБЪЯСНИТЕ В ЧЕМ РАЗНИЦА !!!!?????????
 

Alexandre

PHPПенсионер
первый вариант
Sets the value of one or more parameters to be used in subsequent transformations with XSLTProcessor. If the parameter doesn't exist in the stylesheet it will be ignored.
параметры устанавливаются как текст (а не как множество узлов) установка параметра осуществляется до трансформации.

а второй случай (<xslaram name="text" select="//items/item[@id=1]/" />) для переменной text устанавливается множество выбранных узлов select="//items/item[@id=1]/"
установка параметра осуществляется во время трансформации
 

katyakrog

Новичок
Спасибо!
Тогда как корректно передавать динамический параметр из php в xslt, чтоб он был установлен как node-set?
 

slach

Новичок
пока никак =(( в этом жопа
параметрическое преобразование щас в PHP5 не поддерживает передачу DOMNodeset в качестве значения параметра
там только скалярные типы возможны к сожалению
 
Сверху