【发布时间】:2013-02-12 00:07:49
【问题描述】:
我很沮丧。我在玩 xml 文件。所以这是我自动创建的 xml 文件:
<Files>
<Lists>
<oList>
<Object>
<Name>test1</Name>
<DateCreated>2/11/2013 4:35:05 PM</DateCreated>
<DateDeadline>2/17/2013 12:00:00 AM</DateDeadline>
<Reward>none</Reward>
<Description>chocolate amedei 9</Description>
</Object>
</oList>
</Lists>
</Files>
开头的许多起始元素必须在那里,因为我想稍后扩展文件。所以现在我想读取这个 xml 文件并创建一个类的对象(ThingsToDoObjects,它应该有一天会成为一个待办事项列表),它需要存储在 xml 文件中的参数。此对象应存储在列表中。这就是我目前所拥有的:
XmlDocument xmlListDoc = new XmlDocument();
xmlListDoc.Load(xmlFilePath);
foreach (XmlNode xnode in xmlListDoc.SelectNodes("Files/Lists/oList/Object"))
{
string n = xnode.SelectSingleNode("Name").InnerText.ToString();
DateTime c = Convert.ToDateTime(xnode.SelectSingleNode("DateCreated").InnerText.ToString());
DateTime d = Convert.ToDateTime(xnode.SelectSingleNode("DateDeadline").InnerText.ToString());
string r = xnode.SelectSingleNode("Reward").InnerText.ToString();
string de = xnode.SelectSingleNode("Description").InnerText.ToString();
ThingsToDoObjects NeuObject = new ThingsToDoObjects(n, c, d, r, de);
o.Add(NeuObject);
}
现在当我调试时会发生以下情况: n 创建良好, c 创建良好。但是 d 不起作用。它给出了一个错误:
“字符串未被识别为有效的日期时间”
(这是我从德语翻译过来的,所以这个错误可能会被称为有点不同。这是怎么回事?我希望我只是犯了一些愚蠢的错误。
顺便说一句:我尝试了ParseExactly() 方法,但它也不起作用并给出了同样的错误。
提前感谢所有回答的人。
【问题讨论】:
-
你试过使用 DateTime.TryParse() 吗?
-
你能把字符串
xnode.SelectSingleNode("DateDeadline").InnerText.ToString()的具体内容贴出来吗? -
我也是这门语言的初学者,很抱歉我的小问题,也许你已经做到了,但是:你试过 datetime.parse(xnode.SelectSingleNode("DateCreated").InnerText. ToString())?
-
我还没有解析,只是精确解析。但是让我们感到奇怪的是,对于相似的字符串来说,同样的事情是不一样的。
-
字符串 xnode.SelectSingleNode("DateDeadline").InnerText.ToString() 是它在 xml 中所说的,2013 年 2 月 17 日上午 12:00:00。我知道 ToString() 在那里没有必要,这只是我沮丧的尝试之一。
标签: c# xml xml-parsing