Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从xml获取datetime,并将其格式设置为yyyy、mm、dd和add as child xelement_C#_Xml - Fatal编程技术网

C# 从xml获取datetime,并将其格式设置为yyyy、mm、dd和add as child xelement

C# 从xml获取datetime,并将其格式设置为yyyy、mm、dd和add as child xelement,c#,xml,C#,Xml,我正在尝试从forecaseDateLocalStr获取日期,并将其放入新的DateTimeresult中。但我得到一个对象错误。 我想格式化日期,并将新的xml元素添加为每个dailyForecastPeriod的子元素。这是在我的c语言处理程序中,下面是一个xml示例和代码 string day = xFore.Root.Element("forecastDateLocalStr").Value; Int32.TryParse(day, out result); string dayfile

我正在尝试从forecaseDateLocalStr获取日期,并将其放入新的DateTimeresult中。但我得到一个对象错误。 我想格式化日期,并将新的xml元素添加为每个dailyForecastPeriod的子元素。这是在我的c语言处理程序中,下面是一个xml示例和代码

string day = xFore.Root.Element("forecastDateLocalStr").Value;
Int32.TryParse(day, out result);
string dayfilename = string.Format("yyyy,MM,dd", result);

DateTime dateValue = new DateTime(result);
var d = dateValue.DayOfWeek.ToString();

xFore.Root.Add(
new XElement("day", d));
>


考虑到您似乎正在使用LINQ to XML,您不需要手动执行任何解析。只需使用DateTime的转换:

如果您负责XML格式,我强烈建议您更改元素名称,顺便说一下

我怀疑您实际上想更改查找元素的方式,因为forecastDateLocalStr位于dailyForecastPeriods之下。因此,您可能需要:

XElement forecastDateElement = xFore.Root
                                    .Element("dailyForecastPeriods")
                                    .Element("forecastDateLocalStr");
这将在第一个dailyForecastPeriods元素中找到第一个forecastDateLocalStr元素。如果您想要更多,可能需要使用元素或子体

虽然yyyy,MM,dd是一种非常奇怪的日期格式,我以前从未见过这种格式,但现在还不清楚您以后要做什么。您应该使用以下内容:

string text = forecastDate.ToString("yyyy,MM,dd", CultureInfo.InvariantCulture);

如果您真的想格式化它,那么…

您遇到的错误是什么,顺便说一下,您的格式应该是MM表示月份,小写MM表示分钟。请发布您收到的确切错误消息。调用字符串。Formatyyyy,MM,dd,result;这是毫无意义的。或者更确切地说,它意味着将始终返回字符串yyy、MM、dd。您需要使用DateTime.ToString字符串,但这对该行也没有帮助,因为结果是int.Object引用未设置为对象的实例。@smiller48:这表明它没有找到元素,可能是因为它实际上在dailyForecastPeriods元素中。。。如果您在文章中对XML进行格式化,这将更容易判断。当然,应该注意的是,这将只查看第一个dailyForecastPeriods元素。这与问题并不矛盾,但我得到的印象是,这个问题可能与OP实际寻找的东西也不一致。@MatthewHaugen:是的。将添加注释。
XElement forecastDateElement = xFore.Root.Element("forecastDateLocalStr");
DateTime forecastDate = (DateTime) forecastDateElement;
XElement forecastDateElement = xFore.Root
                                    .Element("dailyForecastPeriods")
                                    .Element("forecastDateLocalStr");
string text = forecastDate.ToString("yyyy,MM,dd", CultureInfo.InvariantCulture);