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#

Другие вопросы по тегам