我有一个像下面的xml
<ProcessInvoice>
<ApplicationArea>
<CreationDateTime>2016-06-01 13:15:36</CreationDateTime>
<ApplicationGroup>BBEX</ApplicationGroup>
<MessageType>PROCESSINVOICE</MessageType>
</ApplicationArea>
</ProcessInvoice>
现在我要添加路径和值,但它是动态的。 它可以像下面的
path-/ProcessInvoice/ApplicationArea/UserArea/Sample1
value-001
path-/ProcessInvoice/ApplicationArea/UserArea/UserAreaLine/Sample1
value-002
如果路径存在,那么我必须添加值,否则修改值。
我可以分割路径并循环查找直到存在哪个节点以及我必须添加的内容但我认为可能有更优雅的方式来执行此操作。请帮助我解决此问题的最佳方法?
编辑 注意 - 我更喜欢XDocument和XElement。
可能我没有正确解释。 我的xml和节点路径都是动态的。 可能存在我的xml中缺少多个节点的情况。 现在问题是我需要确定xml中存在哪个节点以及我需要创建哪些节点。
由于
答案 0 :(得分:0)
如果“Sample1”节点始终存在,则代码如下所示:
XmlDocument doc = new XmlDocument();
doc.Load(FILE);
var userArea = DocumentElement["ProcessInvoice"]["ApplicationArea"]["UserArea"];
foreach (XmlNode element in userArea.ChildNodes)
{
if (element.Name== "Sample1" )
{
XmlNode node == element;
node.InnerText ="001";
}
else if (element.Name == "UserAreaLine")
{
XmlNode node == element["Sample1"];
node.InnerText ="002";
}
}