Re[5]: [xslt] Непонятка с xsl:key
От: hredwolf  
Дата: 05.02.12 13:18
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, hredwolf, Вы писали:


L>>>Не надо этого делать, это плохой подход — завтра у вас окажется, что items встречается палка в атрибуте name и все, приплыли.

L>>>Правильный подход описан двумя постами ниже.

H>>Насчет имени и палки вы правы, но это не значит, что сам тема составных ключей плоха, просто их надо использовать с умом, вот и все.

H>>По теме: use="concat(generate-id(ancestor::items), '|', @src)". По спецификации generate-id не вернет палку, так что generate-id + | + str — всегда однозначно определенный идентификатор элемента с палкой и с какой-то строкой на конце.

L>Использовать составные ключи для этой задачи можно, но не нужно. Если есть более прямые пути, то надо спользовать их.


Не соглашусь. Ключи тут не работают из-за того, что мы не можем нормально задать контекст поиска, в xslt2 эта проблема решена возможностью указания top node при вызове key, а в xslt1 натуральным способом решения проблемы выглядят составные ключи, что по сути есть handmade эмуляция решения из xslt2. По мне так это точно натуральней и более производительней, чем доп. переменные и трики с count(s)=count(s|a).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.