Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.149.251.142] |
|
Сообщ.
#1
,
|
|
|
Есть ли в XSL аналог функций Now или GetDate()?
Задесь http://www.w3.org/TR/xpath-functions/#func-subtract-dates ничего не нашёл. |
Сообщ.
#2
,
|
|
|
http://www.w3.org/TR/xpath-functions/#func-current-dateTime ? |
Сообщ.
#3
,
|
|
|
Не получается запустить функцию. Использую такой stylesheet:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/> <yyy> <xsl:value-of select="current-date()"/> </yyy> </xsl:template> </xsl:stylesheet> При попытке трансформации получаю ошибку: 'current-date' is not a valid XSLT or XPath function. Чего не так? |
Сообщ.
#4
,
|
|
|
XML-IN
<aaa/> XSL <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" /> <xsl:template match="/aaa"> <xxx> <xsl:value-of select="current-dateTime()"/> </xxx> <yyy> <xsl:value-of select="current-date()"/> </yyy> <zzz> <xsl:value-of select="current-time()"/> </zzz> </xsl:template> </xsl:stylesheet> XML-OUT <xxx>2005-12-13T14:13:28.443+01:00</xxx> <yyy>2005-12-13+01:00</yyy> <zzz>14:13:28.443+01:00</zzz> http://www.zvon.org/xxl/XSL-Ref/Tutorials/Date-Time/dt1.html Все работает. Вообще реализация функций сильно зависит от XSLT-процессора. |
Сообщ.
#5
,
|
|
|
Цитата inkoGnitoo @ реализация функций сильно зависит от XSLT-процессора Пробовал встроенный в .Net 1.1. XSLT-процессор и (на другом компутере) msxsl.exe. В обоих случаях вываливается ошибка. |
Сообщ.
#6
,
|
|
|
Решил задачу с использованием шарпа.
... <msxsl:script language="c#" implements-prefix="mm"> public System.DateTime getCurrentDate() { return DateTime.Now; } </msxsl:script> <xsl:template match="/"> <root> <yyy> <xsl:value-of select="mm:getCurrentDate()"/> ... Так и не понял, почему нативные функции не исполняются. |
Сообщ.
#7
,
|
|
|
Все дело в том что эти функции относятся XPath2.0, вот они у вас и не работают.
|
Сообщ.
#8
,
|
|
|
inkoGnitoo, какие надо сделать измененния, чтобы функции XPath2.0 заработали?
|
Сообщ.
#9
,
|
|
|
Знаеш я с MS-парсерами не работал. Но выход это написать расширение, например для xsltproc(процессор основанный на libxml2) есть SDK для написания расширений, если твоя задача позволяет тебе пользовать C# то твой выхлд тоже неплох.
|