У меня есть веб-страница, которая принимает HTML-ввод от пользователей. Входные данные преобразуются в документ XML с использованием пространства имен System.Xml
, например:
var doc = new XmlDocument();
doc.AppendChild(doc.CreateElement("root"));
doc.DocumentElement.SetAttribute("BodyHTML", theTextBox.Text);
После этого для данных используется Xsl-преобразование (System.Xml.Xsl.XslCompiledTransform
).
Пользователи склонны писать текст в Microsoft Word, используя маркеры, кавычки и т. Д. При вставке на мою страницу их текст содержит недопустимые символы, такие как 0x0C, 0x03 и т. Д. При использовании преобразования xsl возникает эта ошибка: «шестнадцатеричное значение 0x0C, является недопустимым символом».
Мое исправление до сих пор заключалось в том, чтобы устранить символы, которые я считаю оскорбительными, используя циклы и String.Replace
:
Все символы от 0 до 31, кроме 9, 10 и 13, заменены на String.Empty
.
То, что я ищу, - лучший способ сделать это. Встроенный метод .Net? Или, возможно, просто полный список недопустимых символов Юникода.