Я использую XDocument для переключения значения в документе XML.В новом значении мне нужно использовать символ '&' (амперсанд), но после XDocument.save () xml имеет & вместо!
&
Я пытался использовать кодирование и прочее ... ничего не получалось
XDocument делает именно то, что должен.
& - недопустимый XML.(это незаконченная ссылка на символ / сущность)
&
& означает «Начало объекта» в XML, поэтому, если вы хотите включить & в качестве данных, вы должны выразить его как объект - & (или использовать его в блоке CDATA).
То, что вы описываете, является нормальным поведением, и XML иначе сломается.
Ваш выходной файл app.config должен быть файлом XML?
Если это так, то символ & должен быть экранирован как &.
Если это не так, вам следует использовать метод вывода текста вместо метода вывода xml: используйте <xsl:output method='text'/>.
<xsl:output method='text'/>
PS: этот вопрос кажется дубликатом Как добавить амперсанд для значения в файле конфигурации приложения ASP.net/C#
Есть два варианта.Либо для обеспечения правильного XML-кодирования / декодирования всего вашего контента в XML-документе.Помните, что кодирование / декодирование HTML и XML немного отличается.
Второй вариант заключается в использовании кодировки base64 для любого содержимого в xml, которое может содержать недопустимые элементы.