![]() |
Модераторы: diadiavova |
![]() ![]() ![]() |
|
StepS |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.8.2005 Где: Днепропетровск Репутация: нет Всего: нет |
Всем привет. Есть такая задача :
есть condition.xml вида:
есть data.xml вида :
мне нужно написать xslt в котором я смогу в выражение <xsl:if test = "????">....</xsl:if> вместо заков вопроса подставить condition из condition.xml причем так чтоб это выражение воспринялось как условие. иными словами как сделать из строки выражение ? ![]() я подобных функций не нашел, Поэтому посетила злая мысль написать extended function, подскажите плз. как они пишуться и используются, можно ссылочку на доку. З.Ы. я пишу на .NET c# поэтому функции на java не подойдут |
||||
|
|||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 10 Всего: 24 |
Не уверен что такое вообще можно сделать, обработку такого уровня сложности всё же обычно перекладывают на язык программирования, в твоём случае C#.
Может скажешь исходную задачу? Похоже что ты просто перемудрил со структурой проекта. -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
StepS |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.8.2005 Где: Днепропетровск Репутация: нет Всего: нет |
Вообщем ответ такой:
condition.xml переделываем след. образом:
пишем на C# функцию
вызов из xsl делаем так : step:GetStyleIDByCondition(., document('Styles.xml')//Style[condition/element = '{$nodename}']) должно все работать ! ![]() Добавлено @ 12:53 исходная задача: Сделать репорт с гибким изменением форматирования Я придумал след. выход: Есть xml с данными, есть xml с форматированием, есть xslt для обработки данных. Сливая воеднино данные и форматирование получаем на выходе отчет. Структура отчета не меняется, меняется только фоматирование. Поэтому xslt служит для отработки структуры отчета + накладываение форматирования, которое задается в отдельном файле. может в дебри полез ![]() |
||||
|
|||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 10 Всего: 24 |
Первое что приходит на ум, то что для каждого варианта форматирования можно завести свой XSLT шаблон, а куски не связанные с форматированием вынести template-ами в отдельный шаблон и include-ить его из тех шаблонов, что отвечают за форматирование.
Это сообщение отредактировал(а) 3,14 - 9.3.2006, 13:24 -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
StepS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 26.8.2005 Где: Днепропетровск Репутация: нет Всего: нет |
Просто форматирование пересекается со структурой. Например:
берем тег из xml с данными, смотрим если этот элемент попадает под форматирование (удовлетворяет условию) то устанавливаем ему стиль отображения, если не попадает - просто структурируем его на свое место! Нужно чтоб можно было у какждой ячейки таблицы менять форматирование, вне зависимости от других ячеек. Т.е. есть 3 ячейки, расположенные в опеределнном порядке, расположение задается xslt шаблоном. Сейчас мне нужно подсветить среднюю ячейку синим жирным, завтра мне нужно все три ячейки подсветить. Усложняем задачу: подсветить ячейки у которых значение больше 66 или меньше 0. получается xslt шаблон нужно постоянно переписывать. Что не годиться, тем более количество ячеек постоянно меняется т.е. динамичное Это сообщение отредактировал(а) StepS - 9.3.2006, 13:48 |
|||
|
||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 10 Всего: 24 |
Тогда тебе нужны шаблоны к-ым на вход подаётся ячейка, а те уже знают как её обрабатывать. Если у тебя каждый день будет меняться шаблон, то тебе всё равно придётся что-то менять ручками, XSLT, XML или код. А вот если можно организовать фиксированный набор шаблонов для задачи, тогда её можно упростить. Например, сделать это видимо возможно, введением дополнительной информации в генерируемый XML файл, но чтоб сказать что то более конкретное, нужно чтоб задача была сформулированна более конкретно.
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "XML/XSLT" | |
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | XML, XSL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |