'&' в тексте оставляют и преобразовывают в &
при создании использования XML-файла XmlTextWriter, но я не хочу, чтобы преобразование произошло, как предотвратить его?
Есть ли какой-либо другой путь помимо использования WriteRaw func xmltextwriter?
Если вы поместите беззаботный амперсанд в XML, это больше не действительна XML.
Ваши два варианта либо избежают его (которые делают ваша библиотека):
<tag>One & another</tag>
или оберните его в CDATA:
<tag><![CDATA[One & another]]></tag>
, которые можно сделать с помощью:
xmlWriter.WriteCData("One & another");
Почему вы не хотите, чтобы это произошло? Похоже, что библиотека обеспечивает правильный символ, выходящий по требованию XML.
Я не уверен, что это сработает, но вам, возможно, захочется сдать на хранение в свойствах StartWriterSettings, доступных через xmltextwriter. Параметры настройки, в частности, свойство StartCharacters.
С другой стороны, как упомянул Брайан Агнью, не кодирование & to & может быть неправильным способом, так как это аннулирует ваш XML (если вы уже не закодировали его & в этом случае вы можете просто декодировать его, прежде чем передать его классу xmltextwriter.