Замена внутреннего текста 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.
надеюсь, это поможет вам.