| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > XML, XSL > Обернуть некоторые ноды |
| Автор: lusever 29.5.2007, 00:14 | ||||||||
Дан xml:
Нужно, чтобы строковые значения с атрибутом span="...", оборачивались xslt в мой <span class="class-name"></span>. Проблема вообщем-то в том, что исходный xslt файл нам неизвестен, т.е. править его нельзя. Мы его импортируем например из: <xsl:import href="xz.xsl"/> в my.xsl. Далее, в my.xsl я делаю так:
Но есть загвоздка. Код обрабатывает лишь те ноды, которые в xz.xsl обрабатываются так:
А те что в xz.xsl:
Как мне это побороть? xz.xsl менять нельзя. |
| Автор: _Valery 29.5.2007, 19:37 | ||||||
lusever, шаблон
выберет:
и
А xz.xsl обработает только первый из них. |
| Автор: lusever 29.5.2007, 22:18 |
| Я прекрасно понимаю, что этот метод сработает только для первого случая. А как нужно мне сделать, чтобы первый и второй случай работали (как можно универсальнее). |
| Автор: _Valery 30.5.2007, 11:41 | ||
lusever, изменить/дополнить xz.xsl, потому что тот же
непонятно зачем нужен в контексте данной задачи. |
| Автор: lusever 30.5.2007, 13:23 |
| Повторюсь. xz.xsl, к сожалению, изменять нельзя. Не знаю уже как вывернуться. Неделю бьюсь. |
| Автор: _Valery 30.5.2007, 18:44 |
| lusever, обработка узлов, содержащих атрибут span должна происходить именно в xz.xsl? Вообще говоря, вижу два возможных варианта: • дописать дополнительные шаблоны в my.xsl; • переписать уже имеющуюся выборку узлов в my.xsl и ничего не менять в xz.xsl, но это будет работать только в предоставленном вами xml-документе, то есть даже смена порядка следования узлов all все собьет. |
| Автор: lusever 30.5.2007, 19:10 |
| Если можно, попjдробнее про дописать шаблон в my.xsl. |
| Автор: _Valery 31.5.2007, 17:35 | ||
Например:
|
| Автор: lusever 31.5.2007, 19:34 |
| Очень хорошо. Вы забыли про <xsl:apply-imports/>. Никто не знает что они там в xz.tpl натворят. |
| Автор: _Valery 31.5.2007, 20:22 |
| поясните. |
| Автор: lusever 31.5.2007, 21:07 | ||||
К примеру, в xz.xsl кто-то написал:
И надо чудесным образом, превратить в:
|