| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > XML, XSL > XSL. Значение переменной внедрить в строку |
| Автор: Compositum 21.3.2012, 15:18 | ||||
Это работает:
но я хочу имя локализации вынести в отдельную переменную. Переписываю код так:
Этот код не работает. Как правильно в параметре document указать нужное мне значение? |
| Автор: diadiavova 21.3.2012, 15:54 |
| Используй функцию concat |
| Автор: Compositum 21.3.2012, 16:09 | ||
а как быть с символом ' (апостроф)? Он ведь должен присутствовать в строке... |
| Автор: diadiavova 21.3.2012, 16:13 |
| Ну в крайнем случае, в отдельную переменную его забей. |
| Автор: Compositum 21.3.2012, 16:17 | ||||||||||
вот извращение-то... :( Я пробовал так:
не работает. Ошибка:
Добавлено @ 16:28 проблема в том, что строка кода
генерирует такой результат:
содержимое кавычек начинается с пробела и заканчивается пробелом. Эти пробелы XSL добавляет сам, хотя я их не указываю... Если убрать пробелы - всё будет работать. Но блин как их убрать? Какого х.. они вообще появляются... |
| Автор: diadiavova 21.3.2012, 16:36 |
normalize-space |
| Автор: Compositum 21.3.2012, 16:40 | ||
и каким макаром его прикрутить к указанному мною выражению? Ведь пробелы возникают внутри функции concat. |
| Автор: diadiavova 21.3.2012, 16:43 |
| Какая разница где они возникают? Функция возвращает значение, это значение и передавай другой функции. Это в любом языке будет работать одинаково. |
| Автор: Compositum 21.3.2012, 16:45 | ||||
ок. можешь показать на примере моей строки? Либо я чего-то не понял, либо у тебя не получится это сделать. У меня уже голова квадратная с этим XSL... :(((( Добавлено через 7 минут и 1 секунду Вопрос снят. Получилось:
Я думал, что concat добавляет пробелы ПОСЛЕ КАЖДОГО АРГУМЕНТА. А оказалось, что он лепит их ВОКРУГ ПЕРЕМЕННОЙ $pathString. |
| Автор: diadiavova 21.3.2012, 16:53 | ||||||||||
Ну вот у тебя лишние пробелы выдает строка
|
| Автор: Compositum 21.3.2012, 17:03 | ||
| неа. указанный тобой вариант не рабочий. 1. параметр функции document должен быть обособлен кавычками или апострофом. 2. в твоём примере косяк со скобками. я подправил твой вариант так:
но и он не заработал :( |
| Автор: Compositum 21.3.2012, 17:29 | ||
Корректно работает такой вариант:
но если в имени пути содержатся пробелы - работать перестанет. Приходится все пробелы заменять на %20. Функция replace появилась только в XSL 2.0, т.о в XSL 1.0 придётся изобретать велосипед... |
| Автор: diadiavova 22.3.2012, 09:54 |
Честно говоря только сегодня на свежую голову до меня дошло, на кой ляд ты туда столько апострофов напихал. Функции надо передавать строку, а не строку с апострофами, апострофы здесь - элементы языка и служат для создания текстовых литералов, а ты передаешь апострофы функции. Естественно это не заработает. Честно говоря, я вообще понять не могу, откуда у тебя там пробелы берутся. Можешь точно написать, как ты переменную объявляешь? |