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