LINQ TO XML,如何用新值替换值c#

以下是我的示例XML文件: –

我只想在C#中使用LINQ to XML将日期值替换为当前日期。

   Ssp Ssp 0   2012/01/21 00:00:00 2012/01/21 00:00:00 00:30:00 056049263 056049263 2012-07-12    

哪个日期值? 所有这些? 具体要素? 例如,这将使用当前日期替换所有displayDateTime元素 – 使用标准XML格式,这不是源XML包含的…如果您需要不同的格式,则应使用DateTime.ToString并替换其内容。具有相关文本的元素。

 using System; using System.Linq; using System.Xml.Linq; class Test { static void Main() { XNamespace ns = "http://www.uk.ssp.com/SSR/XTI/Traffic/0010"; XDocument doc = XDocument.Load("ssp.xml"); var elements = doc.Descendants(ns + "displayDateTime") .ToList(); var today = DateTime.Today; foreach (var element in elements) { element.ReplaceAll(today); } Console.WriteLine(doc); } } 

你可以按照以下方式做

  [Test] public void Test() { XElement root = XElement.Load("Data.xml"); root.Descendants() .Where(x => x.Name.LocalName == "displayDateTime") .ToList() .ForEach(x => x.ReplaceNodes(GetDate(x))); } private static DateTime GetDate(XElement element) { return DateTime.Today.Add(DateTime.Parse(element.Value).TimeOfDay); }