Замена внутреннего текста Xml-узла / элемента

прежде всего это C#. Я создаю интернет-панель для небольшой группы коллег в NHS. Ниже приведен пример xml-файла, в котором мне нужно изменить внутренний текст. Мне нужно заменить конкретный элемент например "Workshop1."Поскольку у нас есть несколько семинаров, я не могу позволить себе использовать общий писатель, потому что он заменит всю информацию о XML-документе этим одним битом кода ниже.

<?xml version="1.0" ?> 
   <buttons>
      <workshop1>hello</workshop1> 
      <url1>www.google.co.uk</url1> 

Я использую случай переключателя для выбора определенного мастерская, где вы можете изменить имя и добавить URL мастерской и с помощью этого кода ниже заменит весь документ.

public void XMLW()
    {
        XmlTextReader reader = new XmlTextReader("C:myXmFile.xml");
        XmlDocument doc = new XmlDocument(); 

        switch (comboBox1.Text)

        {
            case "button1":


                doc.Load(reader); //Assuming reader is your XmlReader 
                doc.SelectSingleNode("buttons/workshop1").InnerText = textBox1.Text;
                reader.Close();
                doc.Save(@"C:myXmFile.xml");
                break;


        }


    }

поэтому, чтобы уточнить, я хочу, чтобы моя программа C# для поиска в XML-документе нашла элемент "Workshop1" и заменила внутренний текст текстом из текстового поля. и иметь возможность сохранить его, не заменяя весь документ одним узлом. Спасибо, что посмотрели.

1 ответов


используя XmlDocument и XPath вы можете сделать это

XmlDocument doc = new XmlDocument();
doc.Load(reader); //Assuming reader is your XmlReader
doc.SelectSingleNode("buttons/workshop1").InnerText = "new text";

можно использовать doc.Save сохранить файл также.

подробнее о XmlDocument on MSDN.

редактировать

чтобы сохранить документ, сделайте это

doc.Save(@"C:\myXmFile.xml"); //This will save the changes to the file.

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