SAK
SAK

Reputation: 3900

Insert XML node before specific node using c#

This is my XML file

<employee>
  <name ref="a1" type="xxx"></name>
  <name ref="a2" type="yyy"></name>
  <name ref="a3" type="zzz"></name>
</employee>

Using C#, I need to insert this node

<name ref="b2" type="aaa"></name>

between the "a2" and "a3" nodes. Any pointer how to sort this out?

Upvotes: 7

Views: 15913

Answers (1)

pierroz
pierroz

Reputation: 7870

use the insertAfter method:

XmlDocument xDoc = new XmlDocument();
xDoc.Load(yourFile);
XmlNode xElt = xDoc.SelectSingleNode("//name[@ref=\"a2\"]");
XmlElement xNewChild = xDoc.CreateElement("name");
xNewChild.SetAttribute("ref", "b2");
xNewChild.SetAttribute("type", "aaa");
xDoc.DocumentElement.InsertAfter(xNewChild, xElt);

Upvotes: 10

Related Questions