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

标签 c# xml linq

下面是我的示例 XML 文件:-

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

<?xml version="1.0" encoding="UTF-8"?>
<BasicImport xmlns="http://www.uk.SSp.com/SSR/XTI/Traffic/0010" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.uk.nds.com/SSR/XTI/Traffic/0010 0010.xsd" utcOffset="+05:30" frameRate="25">
  <SiEventSchedule deleteStart="2012/01/21 00:00:00" deleteEnd="2012/01/21 23:59:59">
    <siService>Ssp</siService>
    <playoutSource>Ssp</playoutSource>
    <activationSourceId>0</activationSourceId>
    <CaSchedule deleteStart="2012/01/21 00:00:00" deleteEnd="2012/01/21 23:59:59" />
    <SiEvent>
      <displayDateTime>2012/01/21 00:00:00</displayDateTime>
      <activationDateTime>2012/01/21 00:00:00</activationDateTime>
      <displayDuration>00:30:00</displayDuration>
      <siTrafficKey>056049263</siTrafficKey>
      <detailKey>056049263 2012-07-12</detailKey>
     </SiEvent>
   </SiEventSchedule>
</BasicImport>

最佳答案

哪些日期值? 全部?具体要素?例如,这会将所有 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);
    }
}

关于c# - LINQ TO XML,如何用新值替换值 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11637263/

相关文章:

c# - 使用定时器实现双击事件

c# - 在 GridTableView 中查找标签 (RadGrid)

c# - 在 .NET 中使用 DataSet.WriteXml 时的自定义日期时间格式

使用命名空间的 Python ElementTree find()

xml - 为什么我从 XML::SAX::PurePerl::EncodingDetect 得到一个错误,尽管我没有加载那个模块?

c# - Entity Framework 5 和 SQL 查询

c# - 具有所有属性的 linq to xml 查询

c# - 将 datetime2 数据类型转换为 datetime 数据类型会导致值超出范围

c# - 使用 LINQ 对列表及其所有嵌套对象进行排序

c# - 转换器中的 WPF MultiBinding 失败 ==> DependencyProperty.UnsetValue