Добавить несколько дочерних узлов в XML с помощью xpath
У меня есть 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 и какие узлы мне нужно создать.
Спасибо
1 ответ
Если узел "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";
}
}