【发布时间】:2014-07-23 16:39:39
【问题描述】:
我是 XPath 的新手,遇到以下问题。
我正在开发一个读取 XML 文件并使用其字段内容设置对象属性的 C# 类。
在这堂课中,我有以下说明:
currentDeepSightVuln.Published = n_alertdocument.SelectSingleNode("./x:Published", nsmgr) == null ? DateTime.MinValue : DateTime.Parse(n_alertdocument.SelectSingleNode("./x:Published", nsmgr).InnerText);
此指令使用以下字段将 currentDeepSightVuln 对象的 Published 属性的值设置到 XML 文件中:
<x:Published>Mar 11 2014</x:Published>
因此,使用之前的值(2014 年 3 月 11 日)我的程序抛出了以下异常:
ex {"字符串未被识别为有效的日期时间,因为 周不正确。"} System.Exception {System.FormatException}
但是,如果我使用 Sep 19 2011 而不是 Mar 11 2014 值(在另一个我用作测试的 XML 文件中,我发现 2011 年 9 月 19 日)我也不例外,我的程序运行良好。
为什么 Mar 11 2014 值不如 DateTime 值?
我可以做些什么来解决这个问题?
Tnx
【问题讨论】:
-
如果您将
Mar 11 2014更改为Sep 19 2011会发生什么情况,您仍然会遇到同样的错误吗? -
您使用的当前线程 (UI) 文化是什么?
-
如果你写 2014-03-11 会发生什么?
-
Andrea,您似乎在 2014 年 3 月 11 日在 XML 的 Published 标记中添加了一个额外的空格。你能再检查一下吗?
-
我尝试复制此内容,但无法得到相同的错误,即使尝试不同的文化(尝试过意大利语、西班牙语、英国和美国英语 - 所有工作)。就像@Jesse 说的那样,这可能是一个文化问题,但如果不了解您的具体文化设置,就无法确定
标签: c# .net datetime xpath xml-parsing