.NET's XmlTextWriter
создает некорректные xml файлы.
В XML некоторые управляющие символы разрешены, например 'горизонтальная табуляция' (
), а другие нет, например 'вертикальная табуляция' (). (См. spec.)
У меня есть строка, содержащая управляющий символ UTF-8, который не разрешен в XML.
Хотя XmlTextWriter
экранирует символ, полученный XML, конечно, все равно недействителен.
Как сделать так, чтобы XmlTextWriter
никогда не выдавал недопустимый XML-файл?
Или, если это невозможно сделать с помощью XmlTextWriter
, как я могу удалить из строки определенные управляющие символы, недопустимые в XML?
Пример кода:
using (XmlTextWriter writer =
new XmlTextWriter("test.xml", Encoding.UTF8))
{
writer.WriteStartDocument();
writer.WriteStartElement("Test");
writer.WriteValue("hello \xb world");
writer.WriteEndElement();
writer.WriteEndDocument();
}
Выход:
hello world