C# — обработка Xml с использованием XmlDocument

Как в C# заменить узел в xml другим узлом с помощью XmlDocument.

Например, рассмотрим следующий XML-файл.

<Products>
  <Product ProdID="1">
    <Data>abc</Data>
  </Product>
  <Product ProdID="2">
    <Data>def</Data>
  </Product>
</Products>

Допустим, мне нужно заменить

  <Product ProdID="2">
    <Data>def</Data>
  </Product>

с новым узлом

  <Product ProdID="2">
    <Data>xyz</Data>
  </Product>

person Happy Go Lucky    schedule 10.09.2009    source источник


Ответы (1)


Вам нужно найти заменяемый XmlElement в исходном XmlDocument и подготовить новый узел как XmlNode. Затем вы можете вызвать ReplaceChild, чтобы заменить старый узел с новым узлом.

XmlNode product2 = document.SelectSingleNode(...);
XmlNode newNode = document.CreateElement(...);

product2.ParentNode.ReplaceChild(newNode, product2);

Если вы просто хотите изменить значение тега данных, найдите узел в XmlDocument и установите Значение свойства:

XmlNode data = document.SelectSingleNode(...);
data.Value = "xyz";
person dtb    schedule 10.09.2009