Это правильное поведение. В местах, где разрешено '
, оно работает так же, как '
, '
или '
. Если вы хотите включить в XML буквальную строку '
, вам следует закодировать &
:
originalXML.Replace("'", "'")
Или проанализируйте исходный XML и измените его:
XElement xe = XElement.Parse(originalXML);
var data = xe.Element("data");
data.Value = data.Value.Replace("'", "'");
Но делать это кажется действительно странным. Возможно, есть лучшее решение проблемы, которую вы пытаетесь решить.
Кроме того, эта кодировка не является «эквивалентной ASCII», они называются ссылками на символьные объекты . А числовые значения основаны на кодовой точке Unicode символа.