Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Вопрос по xpath (переменные) / 6 сообщений из 6, страница 1 из 1
14.06.2012, 13:24
    #37837778
Марс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по xpath (переменные)
Здравствуйте есть хмл

Код: xml
1.
2.
3.
4.
5.
6.
<order id = "1" address = "1">
<order id = "2" address = "2">
<order id = "3" address = "3">
<address id = "1" value = "address1">
<address id = "2" value = "address2">
<address id = "3" value = "address3">



и мне нужен хпас который бы составил пары ордер - значение адреса где параметр address ноды ордера был бы равен параметру id ноды адреса т.е. имея исходной ноду <order id = "1" address = "1"> нужно получить значение "address1"
я пробовал //address[@id=self::node()/@address] но очевидно в данном случае self переходит на саму ноду адреса. Есть ли возможность в рамках именно xpath сохранить айдишник как переменную для дальнейшего использования?
...
Рейтинг: 0 / 0
14.06.2012, 14:12
    #37837894
mage.lan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по xpath (переменные)
Марс,

Тут вам не БД, xPath не строит таблиц, он строит маршрут, если вы знаете id ордера, то получите адрес так:
Код: xml
1.
2.
<xsl:variable name="orderId" select="2" />
<xsl:value-of select="//address[@id=//order[@id=$orderId]/@adress]/@value" />


если вам последовательно обходить ордера - xsl:for-each или xsl:apply-templates вам в помощь.

P.$. "//address" и "//order" - лучше вынести в переменные, очень дорогие запросы.
...
Рейтинг: 0 / 0
14.06.2012, 14:50
    #37837966
Марс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по xpath (переменные)
mage.lan, это с xsl, а мне чистый xpath интересен. Вопрос теоретический, так как на практике я сначала одним хпасом вытаскиваю айдишник адреса, потом когда генерю второй хпас вставляю его туда так что получается банально //address[@id=1] но интересно можно ли эт сделать в принципе
...
Рейтинг: 0 / 0
14.06.2012, 22:22
    #37838653
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по xpath (переменные)
current()?

Или поясните фразу
Марсмея исходной ноду <order id = "1" address = "1">
...
Рейтинг: 0 / 0
15.06.2012, 16:47
    #37839987
Марс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по xpath (переменные)
в цикле (яве) берется каждая из <order> нод и нужно для каждой из нод вычислить соответвующий адрес.
Вопрос: можно ли это сделать одним xpath выражением?
...
Рейтинг: 0 / 0
16.06.2012, 00:16
    #37840528
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по xpath (переменные)
Код: xml
1.
following-sibling::address[@id = current()/@address]/@value
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Вопрос по xpath (переменные) / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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