.NET 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();
}
Вывод:
<?xml version="1.0" encoding="utf-8"?><Test>hello  world</Test>