XDocument сохраняет & вместо просто & - PullRequest
1 голос
/ 11 декабря 2011

Я использую XDocument для переключения значения в документе XML.В новом значении мне нужно использовать символ '&' (амперсанд), но после XDocument.save () xml имеет & вместо!

Я пытался использовать кодирование и прочее ... ничего не получалось

Ответы [ 4 ]

4 голосов
/ 11 декабря 2011

XDocument делает именно то, что должен.

& - недопустимый XML.(это незаконченная ссылка на символ / сущность)

3 голосов
/ 11 декабря 2011

& означает «Начало объекта» в XML, поэтому, если вы хотите включить & в качестве данных, вы должны выразить его как объект - & (или использовать его в блоке CDATA).

То, что вы описываете, является нормальным поведением, и XML иначе сломается.

0 голосов
/ 11 декабря 2011

Ваш выходной файл app.config должен быть файлом XML?

Если это так, то символ & должен быть экранирован как &.

Если это не так, вам следует использовать метод вывода текста вместо метода вывода xml: используйте <xsl:output method='text'/>.

PS: этот вопрос кажется дубликатом Как добавить амперсанд для значения в файле конфигурации приложения ASP.net/C#

0 голосов
/ 11 декабря 2011

Есть два варианта.Либо для обеспечения правильного XML-кодирования / декодирования всего вашего контента в XML-документе.Помните, что кодирование / декодирование HTML и XML немного отличается.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...