powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как отобрать узлы по нескольким элементам из другой ветки?
4 сообщений из 29, страница 2 из 2
Как отобрать узлы по нескольким элементам из другой ветки?
    #39609876
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фридрих,

Все Ваши попытки не учитывают условия
dies iraeэто выведет всех персон, имя которых есть в фильтре и фамилия которых есть в фильтре, без связи одного с другим
dies iraeна XSLT пытаюсьНу тогда все просто
Код: xml
1.
2.
3.
4.
5.
<xsl:template match="person">
  <xsl:if test="/root/filter/person[name = current()/name and surname != current()/surname]">
    <xsl:apply-templates select="." mode="process"/>
  </xsl:if>
</xsl:template>
...
Рейтинг: 0 / 0
Как отобрать узлы по нескольким элементам из другой ветки?
    #39609961
dies irae
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_dies iraeна XSLT пытаюсьНу тогда все просто

на xslt я примерно так же и сделал
интересно, можно ли на xpath выкрутить
...
Рейтинг: 0 / 0
Как отобрать узлы по нескольким элементам из другой ветки?
    #39610021
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dies iraeинтересно, можно ли на xpath выкрутитьВрядли. Для такого условия нужна дополнительная переменная. Или некоторая функция, которые два поля преобразует в одно значение. Если бы Вам нужно было бы проверить на равенство двум полям, тогда можно использовать concat(). А у Вас - неравенство
...
Рейтинг: 0 / 0
Как отобрать узлы по нескольким элементам из другой ветки?
    #39610024
dies irae
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Для такого условия нужна дополнительная переменная. Или некоторая функция, которые два поля преобразует в одно значение.

думаю, нужна функция, типа current(), которая позволит обратиться к узлу на один уровень выше контекста в квадратных скобках. Или более, чем на один уровень, в зависимости от аргумента. Или даже в current() добавить аргумент
Типа такого

Код: php
1.
/root/data/person[/root/filter/person[name = current(-1)/name and surname != current(-1)/surname]] 
...
Рейтинг: 0 / 0
4 сообщений из 29, страница 2 из 2
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как отобрать узлы по нескольким элементам из другой ветки?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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