gpt4 book ai didi

c# - 在 xslt 中访问 C# 方法

转载 作者:行者123 更新时间:2023-11-30 22:14:10 24 4
gpt4 key购买 nike

我是否可以访问 GAC 中已有的 dll 中的方法,而不必在 msxsl:script 元素的 CDATA 部分中声明它们?

这是我不想要的一个例子:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-       result-prefixes="xsl in lang user"     xmlns:in="http://www.composite.net/ns/transformation/input/1.0" xmlns:lang="http://www.composite.net/ns/localization/1.0" xmlns:f="http://www.composite.net/ns/function/1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts"> 
<msxsl:script language="C#" implements-prefix="user">
<msxsl:assembly name="System.Web" />
<msxsl:using namespace="System.Web" />
<![CDATA[public string GetDate(string DateFormat){return DateTime.Now.ToString(DateFormat);}]]></msxsl:script>
<xsl:template match="/">
<sometag>
<xsl:value-of select="user:GetDate('dddd, dd MMMM yyyy')" />
</sometag>
</xsl:template>
</xsl:stylesheet>

我不想将我的函数放在 CDATA 中,我不能像上面的示例那样在模板标记中引用 dll 并调用我的函数吗?

最佳答案

这完全取决于您使用的 XSLT 处理器及其 API。 Microsoft 的XslCompiledTransform 允许您传入扩展对象,参见http://msdn.microsoft.com/en-us/library/tf741884.aspxhttp://msdn.microsoft.com/en-us/library/system.xml.xsl.xsltargumentlist.addextensionobject.aspx .因此,您不必使用 msxsl:script 元素,但您需要定义一个命名空间,并确保将您的对象作为绑定(bind)到该命名空间的扩展对象传入。

关于c# - 在 xslt 中访问 C# 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18633400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com