Как добавить и удалить узел XML?

#c# #xml

#c# #xml

Вопрос:

У меня есть этот код ниже. Я хочу добавить в него новый узел для хранения большего количества пользовательских записей, и если я захочу, я могу их удалить. Кто-нибудь может мне помочь?

 string filename = "text.xml";
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("Login");
XmlElement id = doc.CreateElement("passWord");
root.SetAttribute("userName", nameTxb.Text);
id.SetAttribute("passWord", passwordTxb.Text);
XmlElement name = doc.CreateElement("UserName");
XmlElement passd = doc.CreateElement("PassWord");
name.InnerText = nameTxb.Text;
passd.InnerText = passwordTxb.Text;
root.AppendChild(name);
root.AppendChild(passd);
doc.AppendChild(root);
doc.Save(filename);
MessageBox.Show("Created SuccesFully!");
this.Close();
  

Ответ №1:

Ваш XML-документ хранится в переменной doc. Вы можете использовать doc.Выберите NODES(), чтобы выбрать указанные узлы с помощью XPATH. Вы также можете выполнять итерации по выбранным узлам и добавлять дочерние элементы, удалять дочерние элементы и т.д.

 var nodes = doc.SelectNodes("xpath");
foreach(XmlNode node in nodes)
{
    //
}
  

Комментарии:

1. тот же приведенный выше код, если я хочу добавить новую строку с новым значением, как это работает

Ответ №2:

Это приведет к удалению элемента. Вы можете продолжать использовать SelectSingleNode() для перемещения вниз по ветвям xml. элемент также может быть выбран таким образом — для этого примера просто считайте его произвольной отправной точкой.

 someElement.RemoveChild(oDoc.SelectSingleNode("Parent").SelectSingleNode("Child"));
  

Насколько я знаю, вы также можете использовать тот же метод на уровне XML-документа.

Надеюсь, это поможет.