我必須在我的XSLT文件中包含一個C#腳本。所以作爲來計算兩個dateTime值(並將其添加到其他值)之間的差異。我需要接受所有可能的格式的日期 ..我想這樣做與XSLT ..但作爲XSLT不允許這樣做(隱式)..我發現這個補救措施調用C#腳本..我必須從許多不同的C#程序調用XSL轉換..所以這將是痛苦(而不可能)寫在所有調用C#代碼的代碼.. :(你可以找到這個
這是XSLT代碼一些補救..
C#XSLT:如何調試此錯誤?
<xsl:variable name="date1" select="//date1"/>
<xsl:variable name="date2" select="//date2"/>
<msxsl:script language="C#" implements-prefix="cs">
<![CDATA[
private static string[] formats = new string[]
{
"MM/dd/yyyy HH:mm:ss tt",
"MM/dd/yyyy HH:mm:ss",
"MM/dd/yyyy H:mm:ss tt",
"MM/dd/yyyy H:mm:ss",
"M/dd/yyyy HH:mm:ss tt",
"M/dd/yyyy HH:mm:ss",
"M/dd/yyyy H:mm:ss tt",
"M/dd/yyyy H:mm:ss",
"MM/d/yyyy HH:mm:ss tt",
"MM/d/yyyy HH:mm:ss",
"MM/d/yyyy H:mm:ss tt",
"MM/d/yyyy H:mm:ss",
"M/d/yyyy HH:mm:ss tt",
"M/d/yyyy HH:mm:ss",
"M/d/yyyy H:mm:ss tt",
"M/d/yyyy H:mm:ss",
};
public string datedif(string date1, string date2) {
DateTime startTime;
DateTime endTime;
DateTime ThirdDate;
string date3="12/12/2009 00:00:00";
DateTime.TryParseExact(date1, formats, new CultureInfo("en-US"),
DateTimeStyles.None, out startTime);
DateTime.TryParseExact(date2, formats, new CultureInfo("en-US"),
DateTimeStyles.None, out endTime);
DateTime.TryParseExact(date3, formats, new CultureInfo("en-US"),
DateTimeStyles.None, out ThirdDate);
ThirdDate = ThirdDate.Add(endTime.Subtract(startTime));
string result = ThirdDate.ToString("MM'/'dd'/'yyyy' 'HH':'mm':'ss");
return(result);
}
]]>
</msxsl:script>
<xsl:template match="datediff">
<xsl:element name="{local-name()}">
<xsl:value-of select="cs:datedif($date1, $date2)" />
</xsl:element>
</xsl:template>
和錯誤是:
「DateTimeStyles」並不在當前的背景下存在的名稱
類型或命名空間名稱「的CultureInfo」找不到(你缺少using指令或程序集引用?)
ThanQ非常..喬恩斯基特
顯然Visual Studio調試器支持調試XSLT(斷點,...) – NDM 2009-12-11 15:40:11
所以你要我們調試代碼爲你? – 2009-12-11 15:40:58
我想我要改變菜單在我的IDE中添加請在每一個命令前 - 讓我的電腦更快樂的地方... – 2009-12-11 15:42:52