将行添加到现有xml文件

时间:2017-08-02 10:56:52

标签: c# .net winforms

我想在现有的xml文件中添加行。目前我在下面使用;

dtMasterPivot.WriteXml(AppDomain.CurrentDomain.BaseDirectory + pathname);

dtMasterPivot是一个拥有1000多行的数据表,其数据每15秒更新一次。这就是为什么我不想每15秒从头开始重写整个xml文件。

我想要的是,将'结果'附加到现有的xml;

var result = (from dr1 in dtTADetailsTempOld.AsEnumerable()
                      from dr2 in dtTADetailsTemp.AsEnumerable()
                      where dr1.Field<int>("INST_ID") == dr2.Field<int>("INST_ID")
                      select new
                      {
                          SAMPLE_TIME = dr1.Field<DateTime>("SAMPLE_TIME"),
                          CPU = Math.Round((dr2.Field<double>(1) - dr1.Field<double>(1)) / (timeTopActivity * 100), 2),
                          INST_ID = dr1.Field<int>("INST_ID"),
                      }).ToDataTable();

示例xml内容类似于beloW;

<DocumentElement>
  <dtMasterPivot>
    <SAMPLE_TIME>2017-08-02T09:53:14+03:00</SAMPLE_TIME>
    <CPU>0</CPU>
    <INST_ID>1</INST_ID>
  </dtMasterPivot>
</DocumentElement>

我应该遵循哪条路?

1 个答案:

答案 0 :(得分:0)

您应该考虑使用XDocument类来编辑XML文件。您只需加载和添加如下行:

XDocument xdoc = XDocument.Load(FilePath);
var root = xdoc.Descendants("DocumentElement").FirstOrDefault()
if (root != null){
    root.Add(new XElement("tag", "value"));
    xdoc.Save(FilePath);
}