powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / <xsl:template match="(b|i|s|f|i)[not(@type = 'error')]">
6 сообщений из 6, страница 1 из 1
<xsl:template match="(b|i|s|f|i)[not(@type = 'error')]">
    #37482444
Фотография johndes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, мне нужна ваша помощ.


автор<xsl:template match="(b|i|s|f|i)[not(@type = 'error')]">
Ругается на скобки в match.
Как указать одно условие для нескольких элементов?
...
Рейтинг: 0 / 0
<xsl:template match="(b|i|s|f|i)[not(@type = 'error')]">
    #37482477
Фотография johndes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уточню, для каждого отдельно указывать не вариант, т.к. список элементов очень длинный, и условие будет большое
...
Рейтинг: 0 / 0
<xsl:template match="(b|i|s|f|i)[not(@type = 'error')]">
    #37482644
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
<xsl:template match="b|i|s|f|i">
<xsl:if test="not(@type = 'error')">
Не вариант?
...
Рейтинг: 0 / 0
<xsl:template match="(b|i|s|f|i)[not(@type = 'error')]">
    #37482728
Фотография johndes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy
Код: plaintext
1.
2.
<xsl:template match="b|i|s|f|i">
<xsl:if test="not(@type = 'error')">
Не вариант?

да хотел создать много шаблонов у которых not(@type = 'error')
и один для тех у которых @type = 'error'
а так придётся во всех шаблонах указывать это условие
...
Рейтинг: 0 / 0
<xsl:template match="(b|i|s|f|i)[not(@type = 'error')]">
    #37482731
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
johndes,

один из вариантов вам привел Antonariy, другой с двумя усовиями, но он плох тем что будет тормозить трансформер:
<xsl:template match="*[name()='b' or name()='i' or name()='s' or name()='f' or name()='i'][not(@type = 'error')]">

интересно услышать задачу, т.к. мне кажется, что проблема в архитектуре, как вариант можно использовать такую штуку
<xsl:template match="*[not(@type = 'error')]">
<xsl:apply-templates select="." mode="not-error" />
</xsl:apply template>

<xsl:template match="*" mode="not-error" priority="-1" />
<xsl:template match="b|i|s|f|i" mode="not-error">
...
</xsl:apply template>
...
Рейтинг: 0 / 0
<xsl:template match="(b|i|s|f|i)[not(@type = 'error')]">
    #37483038
Фотография johndes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanjohndes,

один из вариантов вам привел Antonariy, другой с двумя усовиями, но он плох тем что будет тормозить трансформер:
<xsl:template match="*[name()='b' or name()='i' or name()='s' or name()='f' or name()='i'][not(@type = 'error')]">

интересно услышать задачу, т.к. мне кажется, что проблема в архитектуре, как вариант можно использовать такую штуку
<xsl:template match="*[not(@type = 'error')]">
<xsl:apply-templates select="." mode="not-error" />
</xsl:apply template>

<xsl:template match="*" mode="not-error" priority="-1" />
<xsl:template match="b|i|s|f|i" mode="not-error">
...
</xsl:apply template>

вариант с mode и priority - то что нужно, спасибо.
а задача была следующая - обрабатывать узлы разными шаблонами, но если соблюдается условие(одинаковое для всех элементов) то генерировать определённый элемент
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / <xsl:template match="(b|i|s|f|i)[not(@type = 'error')]">
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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