|
Номер элемента ( position() )
|
|||
---|---|---|---|
#18+
Друзья! Запутался. Скажите - position() может возвращать номер позиции не текущего а какого-то другого элемента? Например нужный мне элемент я нахожу через xpath: ancestor::content/descendant::*[name()='idinfo' and @id='"id-8989"'] как мне узнать его позицию? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 14:45 |
|
Номер элемента ( position() )
|
|||
---|---|---|---|
#18+
Код: xml 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 18:31 |
|
Номер элемента ( position() )
|
|||
---|---|---|---|
#18+
Позиция - это порядковый номер элемента в списке. Т.е. нужно определить и искомый элемент и список. Каким списком Вы оперируете здесь? Ну и вопрос. Вы это andrei77ancestor::content/descendant::*[name()='idinfo' and @id='"id-8989"']пишите осознано? Или Вы не знаете, что можно так Код: xml 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 18:40 |
|
Номер элемента ( position() )
|
|||
---|---|---|---|
#18+
Antonariy, а у вас так работает? у меня вот даже так не работает : ./position() так тоже не работает ../position() только когда пишешь position() - выдает просто позицию текущей node ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 20:48 |
|
Номер элемента ( position() )
|
|||
---|---|---|---|
#18+
_Vasilisk_, это просто запись, плод долгих попыток сделать нужный xpath ))) idinfo это имя самого тега, а вот id может повторяться в документе, а нужно именно с этим именем чтобы было совпадение. А определить нужно только позицию искомого элемента - номер ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 20:51 |
|
Номер элемента ( position() )
|
|||
---|---|---|---|
#18+
andrei77Antonariy, а у вас так работает? у меня вот даже так не работает : ./position() так тоже не работает ../position() только когда пишешь position() - выдает просто позицию текущей nodeтогда так: Код: xml 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 20:56 |
|
Номер элемента ( position() )
|
|||
---|---|---|---|
#18+
Antonariy, спасибо! но к сожалению у меня есть ограничение на то, чтобы ввести одно xpath выражение. И вообщем вопрос таков - могу я так построить xpath чтобы он мне вернул позицию не текущего, а любой другой node ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 21:01 |
|
Номер элемента ( position() )
|
|||
---|---|---|---|
#18+
andrei77у меня вот даже так не работает :Что значит "не работает"? Выводит надпись "ушел за пивом"? andrei77А определить нужно только позицию искомого элемента - номерПозиция в чем? Что у Вас "список элементов"? Antonariyтогда так:Если id уникален, то выдаст 1. Если нет, то последовательность 1, 2, 3... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 21:07 |
|
Номер элемента ( position() )
|
|||
---|---|---|---|
#18+
Вот жеж... Тогда что-то вроде count(ancestor::content/descendant::*[name()='idinfo' and @id='"id-8989"']/preceding-sibling::*) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 21:11 |
|
Номер элемента ( position() )
|
|||
---|---|---|---|
#18+
_Vasilisk_, немного не доконца сформулировал задачу подумав о том, что это не столь важно поясню. у меня есть примерно такой xml: xml<content> ... <test id="id-8989"/> .. <procedure id="004"> <idinfo id="id-8988"/> <idinfo id="id-8989"/> <idinfo id="id-8990"/> <procedure id="007"> <idinfo id="id-8991"/> <idinfo id="id-8992"/> <idinfo id="id-8993"/> Условия такие что шаблон применяется из <test id="id-8989"/> то есть это текущая нода далее мне нужно найти позицию procedure в соотвествии с id. то есть логически я бы писал так : ancestor::content/descendant::*[name()='idinfo' and @id='"id-8989"']/../position() но в ответ значение в результате пустое если ввести так: ancestor::content/descendant::*[name()='idinfo' and @id='"id-8989"']/../@id то он выдаст правильный id procedure, но мне нужен номер его позиции ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 21:20 |
|
Номер элемента ( position() )
|
|||
---|---|---|---|
#18+
Antonariy, Отлично, я немного поправил и работает как я и планировал) спасибо! как могу отблагодарить? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 21:57 |
|
|
start [/forum/topic.php?fid=14&msg=38880290&tid=1332251]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 296ms |
0 / 0 |