C# XMLTextWriter - XML 1.1
Я работаю с большим XML-файлом, который занимается локализацией строк в C#. Я не писал программу, которая производит XML, но у меня есть доступ к источнику, и я хочу изменить его, так как в настоящее время он выводит 1.0 в качестве версии, но он содержит недопустимые символы в документе.
Вот как код в настоящее время написан.
XmlTextWriter xr = new XmlTextWriter(fileName, Encoding.UTF8);
xr.Formatting = Formatting.Indented;
xr.Indentation = 4;
xr.WriteStartDocument();
xr.WriteStartElement("tlkFile");
// ...
Тем не менее WriteStartDocument()
В документации говорится, что он использует XML версии 1.0. Я знаю, что это не работает, потому что я пишу анализатор Java, который изменяет этот XML, и он не может загрузить, потому что у него есть символы Unicode, которые не разрешены. конкретно 
который, кажется, будет отменен. Я не уверен, почему это здесь... файл имеет длину около 500000 строк.
Я вручную изменил заголовок, прежде чем мой анализатор java перехватил его до 1.1, и он заработал. Технически я мог бы изменить XML как строку, а затем проанализировать ее, но вместо этого я предпочел бы иметь правильный XML.
Я не могу найти способ изменить это. Я не могу изменить инструмент для использования какой-либо другой формы написания XML, потому что это общий проект с открытым исходным кодом, который используется, и я не очень хорош в C#.
Есть ли уловка с этим?
2 ответа
Используйте следующий процесс:
- Создайте пользовательскую реализацию интерфейса IXmlSerializable
- Справиться

используя пользовательский метод - Используйте экземпляр реализации, чтобы прочитать документ
Рекомендации
Можете ли вы заменить WriteStartDocument() на WriteRaw(" Xml version = \" 1.1 \ "?>") И удалить WriteEndDocument()?