我正在尝试使用 MSXSL 6.0 处理器执行 XML 转换,并且 XSLT 文件的顶部有一个 C# 方法。这是我正在使用的示例 XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts">
<msxsl:script language="C#" implements-prefix="user">
<msxsl:using namespace="System.DateTime"/>
<msxsl:using namespace="System.TimeZone"/>
<![CDATA[
public string GetLocalTime(string returnPart, string utcTime){
string[] timeList = utcTime.Split(':');
string endString = string.Join(":", timeList.Take(3));
DateTime result = TimeZone.CurrentTimeZone.ToLocalTime(DateTime.Parse(endString));
if(returnPart == "Date")
{
return result.ToString("MM/dd/yyyy");
}
else if(returnPart == "Time")
{
return result.ToString("HH:mm:ss");
}
else
{
return result.ToString();
}
}
]]>
</msxsl:script>
最初,我在 msxsl:script 标记之后有一行,如下所示:
<msxsl:assembly name="System.DateTime" />
尝试运行转换时,我在这里收到错误:
External XSLT processing started...
Error occurred while compiling blah blah blah
Code: 0x80004005
Keyword msxsl:script may not contain msxsl:assembly.
...done
我做了一点研究,发现系统程序集默认包含在内,所以我删除了组装线并尝试再次运行它。这次我得到了:
External XSLT processing started...
Error occurred while compiling blah blah blah
Code: 0x80004005
Keyword msxsl:script may not contain msxsl:using.
...done
我试过搜索这个特定的错误,但没有发现任何非常有用的东西。任何帮助,将不胜感激。
谢谢