Codingnow20 Ответов: 1

Как заменить текст в XML - файле?


У меня есть программа, которая записывает в xml - файл, а затем считывает его в некоторые текстовые поля.Я хочу иметь возможность изменять текст в текстовых полях, а затем обновлять xml-файл до того, что говорится в текстовых полях сейчас.Как удалить текст в xml - файле и заменить его текстом текстового поля??
вот код, который я пытаюсь использовать
 if (isChanged)
{
      XDocument doc = XDocument.Load("SavedData.xml");
      var decendants = doc.Descendants().Where(s => s.Name ==
      tb.Name).ToList();
      foreach (XElement kid in decendants)
      {
          string value = kid.Value;
          string re= value.Replace(kid.Value, tb.Text);
      }

}


Что я уже пробовал:

я попытался использовать свойство replacewith (), но оно заменило все, а не только прежний текст.

F-ES Sitecore

Загрузите XML-файл во что-то вроде XmlDocument, найдите соответствующий узел и обновите значение для этого узла. Если вы загуглите "Примеры c# xmldocument" или "Примеры c# xmldocument selectnode", то найдете пример кода для загрузки xml, поиска узлов и т. д.

Codingnow20

Я просто добавил код, который пытался получить xml-текст и заменить его

1 Ответов

Рейтинг:
6

OriginalGriff

XML - файл-это текстовый файл со слоем "структуры", наложенным на него спецификацией XML. Вы не можете просто "заменить текст", поскольку текстовые файлы не работают таким образом - для части текстового файла нет функции "вставить" или "удалить", единственные изменения, которые вы можете внести, - это добавить в конец или переписать весь файл.

Таким образом, F-ES Sitecore находится на месте: лучший способ выполнить эту задачу-прочитать XML-файл в память с помощью соответствующего считывателя (а их довольно много), внести свои изменения в память, а затем записать все XML-данные обратно в файл.