powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / сделать в условии "или"
17 сообщений из 17, страница 1 из 1
сделать в условии "или"
    #35267760
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня есть условие "@type=1"

хочу переписать условие в виде:
<xsl:when test="@type=1" or "@type=2">

как это правильно сделать?
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35267899
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если правильно понял то:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 
    <xsl:choose>
        <xsl:when test="@type=1 | @type=2">
что то делать
        </xsl:when>
        <xsl:otherwise>
иначе что то другое сделать
        </xsl:otherwise>
    </xsl:choose>
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35268059
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SuSaЕсли правильно понял то:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 
    <xsl:choose>
        <xsl:when test="@type=1 | @type=2">
что то делать
        </xsl:when>
        <xsl:otherwise>
иначе что то другое сделать
        </xsl:otherwise>
    </xsl:choose>



ошибка:
Выражение не возвращает узел DOM. @type=-->1|<--@type=17
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35268239
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм.. действительно неработает.
ну еще можно вот так, это работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 <xsl:choose>
        <xsl:when test="@type= 1  or 2  ">
что то делать
        </xsl:when>
        <xsl:otherwise>
иначе что то другое сделать
        </xsl:otherwise>
    </xsl:choose> 
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35268246
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой... опять не верно)
твоя идея была правильной, только ковычек много
Код: plaintext
1.
2.
3.
4.
5.
6.
<xsl:when test="@type=1 or @type=2">
что то делать
        </xsl:when>
        <xsl:otherwise>
иначе что то другое сделать
        </xsl:otherwise>
    </xsl:choose> 
вот так достаточно.
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35268251
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно через "|" с узлами прокатывало.. с атрибутами не работает..
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35268297
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SuSaстранно через "|" с узлами прокатывало.. с атрибутами не работает..
А вот, что говорит документация :)
Код: plaintext
1.
2.
or    Logical-or
|     Set operation; returns the union of two sets of nodes
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35758334
_Vasilisk_ SuSaстранно через "|" с узлами прокатывало.. с атрибутами не работает..
А вот, что говорит документация :)
Код: plaintext
1.
2.
or    Logical-or
|     Set operation; returns the union of two sets of nodes


Привет, а не подскажите, как сделать "или" между параметром и атрибутом?

Спасибо.
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35758336
"или" между па_Vasilisk_ SuSaстранно через "|" с узлами прокатывало.. с атрибутами не работает..
А вот, что говорит документация :)
Код: plaintext
1.
2.
or    Logical-or
|     Set operation; returns the union of two sets of nodes


Привет, а не подскажите, как сделать "или" между параметром и атрибутом?

Спасибо.

Нужно использовать "or" или "|" ?
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35758350
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий КатаевНужно использовать "or" или "|" ?
Вы знаете в чем отличие операции объединения множеств и логической операции "ИЛИ"?

| - это операция объединения множеств (в данном случае множеств узлов)
or - это логическая операция
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35758683
_Vasilisk_Дмитрий КатаевНужно использовать "or" или "|" ?
Вы знаете в чем отличие операции объединения множеств и логической операции "ИЛИ"?

| - это операция объединения множеств (в данном случае множеств узлов)
or - это логическая операция

Добрый день,
если честно, то пока не очень, я только начал заниматься Xpath.
пожалуй я задам вопрос прямо в этой теме.

У меня есть XML:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?xml version="1.0" ?>
<authors>
  <author born="1802" died="1885">
    <name idd="VH">Victor Hugo</name>
    <nationality>French</nationality>
  </author>
  <author  born="-496" died="-406" period="classical">
    <name idd="SO">Sophocles</name>
    <nationality>Greek</nationality>
  </author>
  <author born="1828" died="1910">
    <name idd="LT">Leo Tolstoy</name>
    <nationality>Russian</nationality>
  </author>
  <author born="1799" died="1837">
    <name idd="AP">Alexander Pushkin</name>
    <nationality>Russian</nationality>
  </author>
  <author  born="-427" died="-347" period="classical">
    <name idd="PL">Plato</name>
    <nationality>Greek</nationality>
  </author>
</authors>

мне надо выбрать автора, если национальность "Greek" или период "classical".
Я пробовал так
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35758699
_Vasilisk_Дмитрий КатаевНужно использовать "or" или "|" ?
Вы знаете в чем отличие операции объединения множеств и логической операции "ИЛИ"?

| - это операция объединения множеств (в данном случае множеств узлов)
or - это логическая операция

Добрый день,
Прошу прошения за предыдущий, незаконченный пост.
если честно, то пока не очень, я только начал заниматься Xpath.
пожалуй я задам вопрос прямо в этой теме.

У меня есть XML:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?xml version="1.0" ?>
<authors>
  <author born="1802" died="1885">
    <name idd="VH">Victor Hugo</name>
    <nationality>French</nationality>
  </author>
  <author  born="-496" died="-406" period="classical">
    <name idd="SO">Sophocles</name>
    <nationality>Greek</nationality>
  </author>
  <author born="1828" died="1910">
    <name idd="LT">Leo Tolstoy</name>
    <nationality>Russian</nationality>
  </author>
  <author born="1799" died="1837">
    <name idd="AP">Alexander Pushkin</name>
    <nationality>Russian</nationality>
  </author>
  <author  born="-427" died="-347" period="classical">
    <name idd="PL">Plato</name>
    <nationality>Greek</nationality>
  </author>
</authors>

мне надо выбрать автора, если национальность "Greek" или период "classical".

Я пробовал так:
Код: plaintext
/authors/author[@period="classical"] or /authors/author[nationality="Greek"]
но ничего не получилось.

Зато такое сработало и выдало довольно похожий ответ:
Код: plaintext
1.
/authors/author[nationality='Greek']/name/text()  | /authors/author[@period="classical"]/name/text()
насколько это будет удовлетворять условию?
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35760378
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
/authors/author[@period="classical" or nationality="Greek"]
Кстати, почему то у Вас в классике только греки. Причем все греки в классике
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35762246
авторКстати, почему то у Вас в классике только греки. Причем все греки в классике

Не знаю :). Просто такой файл попался.

А вот еще задание, на котором споткнулся и никак не осилю:
Из того же файла нужно выбрать второго автора после Толстого.

Попробовал так:

Код: plaintext
/authors/author [ position()= contains(name,'Tolstoy') + 1  ]
но выдаёт что-то не то.

Совсем уж от безысходности поробовал так:
Код: plaintext
/authors/author[contains(name,'Tolstoy')] | /authors/author[position()=  1 ]
и опять не верно.

Есть идеи?
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35762590
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий КатаевПопробовал так:
Код: plaintext
/authors/author [ position()= contains(name,'Tolstoy') + 1  ]

Это ересь. Вы номер позиции сравниваете с признаком вхождения к кторому прибавили 1
Дмитрий КатаевСовсем уж от безысходности поробовал так:
Код: plaintext
/authors/author[contains(name,'Tolstoy')] | /authors/author[position()=  1 ]
и опять не верно.
Вы этой строкой говорите выбрать все узлы author у которых дочерний узел name имеет значения Tolstoy и добавить в это множество узел autor? стоящий на второй позиции
Дмитрий КатаевЕсть идеи?
Посмотеть в сторону following-sibling
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35764445
_Vasilisk_,

Спасибо за подсказку!
Написал так:
Код: plaintext
//child::author[contains(name,'Tolstoy')]/following-sibling::author[position()= 2 ]

надеюсь верно.
...
Рейтинг: 0 / 0
сделать в условии "или"
    #35768309
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно просто
Код: plaintext
//child::author[contains(name,'Tolstoy')]/following-sibling::author[ 2 ]
А вообще использование оператора // крайне не рекомендуется. Он очень медленный
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / сделать в условии "или"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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