xmlhack.ru XML-форумы
Обсуждение XML и связанных с ним технологий

как определить предыдущий узел?


Автор Сообщение
Гость





[13847] Ср Июн 17, 2009 12:03
как определить предыдущий узел?
Предыдущий узел этого уровня Картинка...

Код:


preceding-sibling::img


А как сделать, если я не знаю, какой предыдуший узел, и мне надо проверить картинка ли он?

что то типа:

Код:


preceding-sibling::.[img]




огромное спасибо!
Sergiy
Аспирант

Зарегистрирован: 19.02.2005
Сообщения: 225
Откуда: Киев
Посетить сайт автора
[13848] Ср Июн 17, 2009 14:30

Код:

preceding-sibling::*[name()="img"]

это имелось ввиду?
_________________
развлекайся и ни в чём себе не отказывай...
Гость





[13850] Ср Июн 17, 2009 14:43

Sergiy писал(а):

Код:

preceding-sibling::*[name()="img"]

это имелось ввиду?


Что то в этом роде, только надо именно предыдущий элемент в оси проверить, а не вообще наличие в оси IMG

Код:


preceding-sibling::*[1][name()='img']

or

preceding-sibling::*[1][img]



Но всеравно не рабоатет почему то...
Sergiy
Аспирант

Зарегистрирован: 19.02.2005
Сообщения: 225
Откуда: Киев
Посетить сайт автора
[13852] Ср Июн 17, 2009 14:47

На сколько мне не изменяет склероз это будет выглядеть приблизительно так

Код:

preceding-sibling::*[last()][name()="img"]


_________________
развлекайся и ни в чём себе не отказывай...
Гость





[13853] Ср Июн 17, 2009 15:45

Sergiy писал(а):

На сколько мне не изменяет склероз это будет выглядеть приблизительно так

Код:

preceding-sibling::*[last()][name()="img"]



Ну вот логика понятна, только почему то не работает... И такое ощущение, что он всервно смотрит всю ось, а не один предыдущий элемент!
olpa
Любитель

Зарегистрирован: 23.04.2002
Сообщения: 981
Откуда: Санкт-Петербург
Посетить сайт автора
[13854] Чт Июн 18, 2009 07:00

Цитата:

А как сделать, если я не знаю, какой предыдуший узел, и мне надо проверить картинка ли он?


Код:

preceding-sibling::*[1][self::img]


или, что тоже самое,

Код:

preceding-sibling::*[1][name()='img']


Цитата:

Но всеравно не рабоатет почему то...


Обязано. Ошибка в другом месте. (Пространства имён?) Нужен минимальный пример.