修订XML文件

问题描述:

我一直在努力,在过去的一天阅读和修改这个XML修订XML文件

<TimeSeriesDocument xmlns:xsd="http://www.w3.org/2001/XMLSchema"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:Test"> 
<DocumentIdentification v="ZDAE_02417b6a-477a-a-4aa19e1c4712"/> 
<TimeSeries> 
<Period> 
    <TimeInterval v="12" /> 
    <Resolution v="PT1H" /> 
    <Interval> 
    <Pos v="17" /> 
    <Qty v="0" /> 
    </Interval> 
    <Interval> 
    <Pos v="19" /> 
    <Qty v="10" /> 
    </Interval> 
</Period> 
</TimeSeries> 
</TimeSeriesDocument> 

我想期内的每个区间内修改每个数量

我一直用后裔,但我努力循环每个间隔,并挑选和更改数量

var doc = XDocument.Load(test.xml); 
var periods = doc.Descendants("TimeSeriesDocument/TimeSeries").Select(e => new { name = e.Element("Period").Value }); 

你能帮忙吗?

+0

你想用它来读取XML文件是什么类型的项目? –

通过节点数量的样本控制台应用程序循环,并设置新的值当V属性:

class Program 
{ 
    static void Main(string[] args) 
    { 
     var document = new XmlDocument(); 
     document.Load("Sample.xml"); 

     XmlNamespaceManager nsmgr = new XmlNamespaceManager(document.NameTable); 
     nsmgr.AddNamespace("ns", "urn:Test"); 

     var intervalNodes = document.SelectNodes("//ns:Interval", nsmgr); 
     foreach(XmlNode node in intervalNodes) 
     { 
      var quantityNode = node.SelectSingleNode("./ns:Qty", nsmgr); 
      quantityNode.Attributes["v"].Value = "New Value"; 
     } 
    } 
} 
+0

优秀谢谢 –

XNamespace ns = "urn:Test"; 

XElement doc = XElement.Load("file.xml"); 

var periods = doc.Descendants(ns + "Period"); 
var intervals = periods.Elements(ns + "Interval"); 

foreach (var qty in intervals.Elements(ns + "Qty")) 
{ 
    qty.Attribute("v").Value = "42"; 
} 
+0

优秀谢谢 –