Xml (如何)使用.Net XPath处理在XSLT/XPath中获取当前日期
既然MS没有实现Xpath/XSL 2.0,而且它们的Xpath扩展没有包含current-date()函数,那么如何在XSLT中实现这一点呢 注意。我无法控制调用代码,因此无法作为参数传入或设置帮助DLL等 谢谢Xml (如何)使用.Net XPath处理在XSLT/XPath中获取当前日期,xml,xslt,xpath,Xml,Xslt,Xpath,既然MS没有实现Xpath/XSL 2.0,而且它们的Xpath扩展没有包含current-date()函数,那么如何在XSLT中实现这一点呢 注意。我无法控制调用代码,因此无法作为参数传入或设置帮助DLL等 谢谢 马特收到了来自MSDN博客论坛的反馈。在此发布完整性: 嗨,马特 基本上有三种方法可以实现你的需求 将日期作为外部参数传递(请参见此处的详细信息:)–这是一个理想的解决方案,但从您编写的内容来看,这可能是不可能的 在样式表中使用脚本–下面是一个示例 <?xml version=
马特收到了来自MSDN博客论坛的反馈。在此发布完整性: 嗨,马特 基本上有三种方法可以实现你的需求
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:my="put-your-namespace-uri-here"
exclude-result-prefixes="msxsl my">
<xsl:output method="xml"/>
<msxsl:script language="C#" implements-prefix="my">
public string Now(){
return DateTime.Now.ToString("O");
}
</msxsl:script>
<xsl:template match="/">
<now>
<xsl:value-of select="my:Now()" />
</now>
</xsl:template>
</xsl:stylesheet>
公共字符串Now(){
return DateTime.Now.ToString(“O”);
}
这里需要注意的是,如果样式表包含脚本,您应该只加载一次并重用它(出于性能原因,即使您没有脚本,也建议这样做)。原因是,每次加载xslt样式表时,它都会将脚本编译为动态创建的程序集,然后无法卸载该程序集(卸载它们的唯一方法是卸载整个appdomain)。如果应用程序经常这样做,那么最终可能会出现OutOfMemoryException从MSDN博客论坛收到此反馈。在此发布完整性: 嗨,马特 基本上有三种方法可以实现你的需求
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:my="put-your-namespace-uri-here"
exclude-result-prefixes="msxsl my">
<xsl:output method="xml"/>
<msxsl:script language="C#" implements-prefix="my">
public string Now(){
return DateTime.Now.ToString("O");
}
</msxsl:script>
<xsl:template match="/">
<now>
<xsl:value-of select="my:Now()" />
</now>
</xsl:template>
</xsl:stylesheet>
公共字符串Now(){
return DateTime.Now.ToString(“O”);
}
这里需要注意的是,如果样式表包含脚本,您应该只加载一次并重用它(出于性能原因,即使您没有脚本,也建议这样做)。原因是,每次加载xslt样式表时,它都会将脚本编译为动态创建的程序集,然后无法卸载该程序集(卸载它们的唯一方法是卸载整个appdomain)。如果应用程序经常这样做,那么最终可能会出现OutOfMemoryException看起来您正在限制您的资源…从,似乎有人试图通过扩展的XsltContext类将EXSLT引入.Net XPath/XSLT。看起来您正在限制您的资源…从,似乎有人试图通过扩展的XsltContext类将EXSLT引入.Net XPath/XSLT。