修订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 });
你能帮忙吗?
答
通过节点数量的样本控制台应用程序循环,并设置新的值当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
优秀谢谢 –
你想用它来读取XML文件是什么类型的项目? –