powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / виды передачи параметров
9 сообщений из 9, страница 1 из 1
виды передачи параметров
    #34357626
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И так, всем сново привет.
В общем тема "мне очень интересно" , где говорилась про функцию и ее параметры, я перешел на альтернативный вариант:
<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>
Как понимаете, если я пишу, значит нифига не работает
Напишите хоть один работающий пример с переданным таким образом параметром
...
Рейтинг: 0 / 0
виды передачи параметров
    #34358225
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
начни с того, что сформулируй задачу
...
Рейтинг: 0 / 0
виды передачи параметров
    #34358704
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЭЭЭ? 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'. Просьба прокоментировать
Спасибо за участие
...
Рейтинг: 0 / 0
виды передачи параметров
    #34359832
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SuSaВопрос! 1. Чего я не так сделал?ты не сформулировал задачу. Очевидно, ты пытаешься что-то сделать, а что – не понятно.
...
Рейтинг: 0 / 0
виды передачи параметров
    #34359884
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
...
Рейтинг: 0 / 0
виды передачи параметров
    #34359885
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что по поводу 2 и 3 вопросов?
...
Рейтинг: 0 / 0
виды передачи параметров
    #34359976
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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всё абсолютно правильно, что написал, то и работает. Чего не нравится-то?
...
Рейтинг: 0 / 0
виды передачи параметров
    #34359978
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SuSaа что по поводу 2 и 3 вопросов?вне контекста задачи бессмысленны, а задачу ты предоставить не удосужился.
...
Рейтинг: 0 / 0
виды передачи параметров
    #34360241
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин.... нашел ошибку, действительно все работет если написать так. просто давал не весь текст xsl документа,а в полномоказалось что в xsl:output один из атрибутов выставил на проверку корректности всего документа, вот сидел ошибки ловил
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / виды передачи параметров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]