|
|
|
виды передачи параметров
|
|||
|---|---|---|---|
|
#18+
И так, всем сново привет. В общем тема "мне очень интересно" , где говорилась про функцию и ее параметры, я перешел на альтернативный вариант: <xsl:template match="Office-memo" mode="in" > <xsl:param name="eskd" ></xsl:param><!-- as="node()*" --> <xsl:variable name="a" select="concat('//',$eskd)"/> <xsl:choose> <xsl:when test="count(a[@xml:lang=current()/@xml:lang])=1" >uslovie ne vipolnilos'</xsl:when> <xsl:otherwise>lasa</xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="/"> <xsl:apply-templates mode="in"> <xsl:with-param name="eskd" select="'header'"/> </xsl:apply-templates> </xsl:template> Как понимаете, если я пишу, значит нифига не работает Напишите хоть один работающий пример с переданным таким образом параметром ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2007, 13:59 |
|
||
|
виды передачи параметров
|
|||
|---|---|---|---|
|
#18+
начни с того, что сформулируй задачу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2007, 16:25 |
|
||
|
виды передачи параметров
|
|||
|---|---|---|---|
|
#18+
ЭЭЭ? maXmo ты чего ? вопроса не понял? Ладно попробую другими словами... Необходимо на xsl написать что то типа 1-й функции , и кучи ее вызовов с разными параметрами. Реализация самой функции не удолась, сдесь пример альтернативного развития данного вопроса. через param и with-param Если написать так xml ... <header xml:lang="ru">text1</header> <header xml:lang="ru">text2</header> <header xml:lang="fr">text3</header> ... а xsl так: <!--шаблон он же в данном случаи выполняет роль функции --> <xsl:template match="Office-memo" mode="in" > <xsl:param name="eskd" ></xsl:param> <xsl:choose> <xsl:when test="count($eskd[@xml:lang=current()/@xml:lang])=1" >uslovie ne vipolnilos'</xsl:when> <xsl:otherwise>lasa</xsl:otherwise> </xsl:choose> </xsl:template> <!-- Другой шаблон выполняет роль вызова функции с передачей ей параметра--> <xsl:template match="/"> <xsl:apply-templates mode="in"> <xsl:with-param name="eskd" select="//header"/> </xsl:apply-templates> </xsl:template> Так вот если написать вот так, то в "функцию" вместо значения "//header" придет текст всех! //header'ов из xml документа. Елси написать так <xsl:with-param name="eskd" select=" '//header' "/> то уйдет нормально, но программа застопориться уже на условии Вопрос! 1. Чего я не так сделал? 2. Покажите хоть один рабочий!! пример, подобного типа (т.е. переданный параметр должен участвовать в каком либо условии, - выражение д.б. булевского типа) 3. М.б. проблема с типом передачи парметра?, это атрибут 'as'. Просьба прокоментировать Спасибо за участие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2007, 18:37 |
|
||
|
виды передачи параметров
|
|||
|---|---|---|---|
|
#18+
SuSaВопрос! 1. Чего я не так сделал?ты не сформулировал задачу. Очевидно, ты пытаешься что-то сделать, а что – не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2007, 11:05 |
|
||
|
виды передачи параметров
|
|||
|---|---|---|---|
|
#18+
Блин..... Пример видешь? он не работает как надо, вопрос почему Должен работать также, как если бы выглядел так: xsl: <xsl:template match="/"> <xsl:for-each select="//header"> <xsl:choose> <xsl:when test="count(//header[@xml:lang=current()/@xml:lang])=1" >uslovie ne vipolnilos' 10;</xsl:when> <xsl:otherwise>povtor yazika 10;</xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:template> xml: ... <header xml:lang="ru">text1</header> <header xml:lang="ru">text2</header> <header xml:lang="fr">text3</header> ... Результат uslovie ne vipolnilos' povtor yazika povtor yazika ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2007, 11:18 |
|
||
|
виды передачи параметров
|
|||
|---|---|---|---|
|
#18+
а что по поводу 2 и 3 вопросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2007, 11:18 |
|
||
|
виды передачи параметров
|
|||
|---|---|---|---|
|
#18+
SuSaБлин..... Пример видешь? он не работает как надо, вопрос почемупример вижу, работает идеально, в точном соответствии с тем, что ты написал. Вопрос: что не нравится? SuSaДолжен работать также, как если бы выглядел так: xsl: <xsl:template match="/"> <xsl:for-each select="//header"> <xsl:choose> <xsl:when test="count(//header[@xml:lang=current()/@xml:lang])=1" >uslovie ne vipolnilos' 10;</xsl:when> <xsl:otherwise>povtor yazika 10;</xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:template> xml: ... <header xml:lang="ru">text1</header> <header xml:lang="ru">text2</header> <header xml:lang="fr">text3</header> ... Результат uslovie ne vipolnilos' povtor yazika povtor yazikaвсё абсолютно правильно, что написал, то и работает. Чего не нравится-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2007, 11:34 |
|
||
|
виды передачи параметров
|
|||
|---|---|---|---|
|
#18+
SuSaа что по поводу 2 и 3 вопросов?вне контекста задачи бессмысленны, а задачу ты предоставить не удосужился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2007, 11:35 |
|
||
|
виды передачи параметров
|
|||
|---|---|---|---|
|
#18+
Блин.... нашел ошибку, действительно все работет если написать так. просто давал не весь текст xsl документа,а в полномоказалось что в xsl:output один из атрибутов выставил на проверку корректности всего документа, вот сидел ошибки ловил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2007, 12:37 |
|
||
|
|

start [/forum/topic.php?fid=14&msg=34359832&tid=1334431]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
185ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 524ms |

| 0 / 0 |
