|
Модераторы: diadiavova |
|
EgoBrain |
|
|||
Опытный Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
Как в XSLT можно вычислить разницу дат в днях между текущей датой и датой полученной из текста в формате "yyyy-mm-dd"?
|
|||
|
||||
diadiavova |
|
|||
Доктор Зло(диагност, настоящий, с лицензией и полномочиями) Профиль Группа: Модератор Сообщений: 5820 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
EgoBrain, вот здесь был подобный вопрос. Что до формата, то распарсить дату несложно, достаточно встроенных строковых функций.
http://forum.vingrad.ru/forum/topic-309563...дата-время.html -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
EgoBrain |
|
|||
Опытный Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
Спасибо, но мой процессор даже в current-date не может (javax.xml.transform 1.7) или может быть я неправильно пишу код В теме по ссылке сказано что можно решить javacript-ом, я не гнушаюсь любыми доступными способами, еще когда создавал тему пытался и так и сяк, с javascript тоже не вышло. Моих наработок уже нет, можете на моём примере выше способ реализации продемонстрировать: вызов функции current-date() и вызов javascript? Это сообщение отредактировал(а) EgoBrain - 25.7.2017, 06:34 |
|||
|
||||
diadiavova |
|
|||
Доктор Зло(диагност, настоящий, с лицензией и полномочиями) Профиль Группа: Модератор Сообщений: 5820 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
EgoBrain, какой ещё каррентдэйт? Последний пост посмотри, там по параметрам датв вычисляется юлианский день. Вычислишь его для интересующих тебя дат и останется только найти разность результатов.
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
EgoBrain |
|
||||
Опытный Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
Это сообщение отредактировал(а) EgoBrain - 25.7.2017, 09:40 |
||||
|
|||||
diadiavova |
|
|||
Доктор Зло(диагност, настоящий, с лицензией и полномочиями) Профиль Группа: Модератор Сообщений: 5820 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
EgoBrain, да так-то оно так, только вот когда ты, говоря о несуществующей функции(или что там это было) пишешь ее название, как будто она существует, то выглядит это странно.
Что касается текущей даты, то тут все очень просто (не в смысле решения, а в смысле ответа на вопрос ): если стандартами такая функция не предусмотрена и процессор ничего подобного не представляет, то как по мне, так вполне очевидно, что вычислить ее, применяя какую-то магию - вряд ли представляется возможным. Тут уж либо найди способ передать эти данные в преобразование (например через параметры), либо придумай костыль. Если параметры недоступны, то в качестве костыля можно использовать какой-нибудь сервис, содержащий дату. Я не знаю, что именно ты там мутишь, но если все делается на сайте, то просто сделай так, чтобы этот сайт по определенному адресу возвращал XML-документ с датой и подгружай его с помощью фукнции document. Если делается в файловой системе, то перед преобразованием сохраняй файл в определенное место и то же самое. Возможно можно придумать что-то более внятное, но все зависит от того, что именно ты делаешь и в каких условиях. А что касается JavaScript, то там я имел в виду, что в тех случаях, когда результатом преобразования будет HTML, то скрипт можно включить в него и выполнить вычисления уже после преобразования. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
EgoBrain |
|
||||
Опытный Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
diadiavova, спасибо за развернутый ответ. Насчет JavaScript я натыкался на примеры непосредственного его использования в XSLT (не в итоговом документе).
Насчет моих вопросов и т.д. это всё вытекает из незнания основ и стандартов (XML, XSL и прочие смежные), я понимаю что прежде чем применять технологию её нужно изучить, но требуемые сроки решения задачи меньше чем срок изучения и реализации (для таких случаев в том числе и нужен форум). В результате я пробовал разные способы записи шаблона: подключение пространтв имен, различные способы вызова функции (с префиксом и без) и получал разные ошибки, что меня весьма запутало. Как результат невнятная постановка впороса здесь и неполное описание ситуации. О функции current-date() узнал из руководства https://www.w3schools.com/xml/xsl_functions.asp где сказано
Версия XSLT 2.0 была одобрена в качестве рекомендации 24 января 2007 года а используемый мной процессор входит в состав Java EE 1.7, которая вышла 28 июля 2011 года. По идеи он должен осуществлять поддержку XSLT 2.0, значит я что-то делаю не так, не правильно описываю шаблон, потому и попросил пример.
Отличная идея я попробую. А можно получить из вне не целый документ а например значение? Это сообщение отредактировал(а) EgoBrain - 26.7.2017, 02:23 |
||||
|
|||||
diadiavova |
|
||||
Доктор Зло(диагност, настоящий, с лицензией и полномочиями) Профиль Группа: Модератор Сообщений: 5820 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
В стандарте ничего такого нет, но разные процессоры могут поддерживать скриптинг на разных языках, если используемый тобой процессор поддерживает скриптинг, то узнать об этом ты можешь в документации именно по этому процессору. Кроме того, если код включен непосредственно в XSLT, это еще не значит, что исполняться он будет в процессе преобразования, он может быть предназначен и для итогового документа. Да стандарт-то, конечно, существует давно, вот только его практически никто не поддержал. Джависты, насколько я знаю, используют saxon, когда нужен XSLT2, или еще там есть вроде xalan называется. Из этого можно сделать вывод, что процессор включенный в стандартную библиотеку классов (насколько я понимаю речь именно о таком процессоре) - не поддерживает XSLT2. Я полагаю ты понимаешь как работает веб-сервер? Ну тогда как ты себе это представляешь? Просто создай небольшой сервис, который по запросу будет выдавать что тебе надо, например вот такой документ
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||
|
|||||
EgoBrain |
|
|||
Опытный Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: нет Всего: 2 |
Решение с функцией document подошло, закрываю тему.
Дяде Вове отдельный респект. |
|||
|
||||
Правила форума "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. |