2017-08-02 48 views
0

我想将行添加到现有的xml文件。目前我在下面使用;将行添加到现有的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内容示例如下;

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

我应该遵循哪条路径?

回答

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); 
} 
+0

嗨,你可以请使用上述代码作为答案? –

+0

@doctorcesar我认为只有你可以做到这一点。您只需将答案标记为正确(绿色支票图像) –