Remove all hexadecimal characters before loading string into XML Document Object? Remove all hexadecimal characters before loading string into XML Document Object? xml xml

Remove all hexadecimal characters before loading string into XML Document Object?


Here you have an example to clean xml invalid characters using Regex:

 xmlString = CleanInvalidXmlChars(xmlString); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlString); public static string CleanInvalidXmlChars(string text)    {      string re = @"[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]";      return Regex.Replace(text, re, "");    }   


A more efficient way to not error out on invalid XML characters would be to use the CheckCharacters flag in XmlReaderSettings.

var xmlDoc = new XmlDocument();var xmlReaderSettings = new XmlReaderSettings { CheckCharacters = false };using (var stringReader = new StringReader(xml)) {    using (var xmlReader = XmlReader.Create(stringReader, xmlReaderSettings)) {        xmlDoc.Load(xmlReader);    }}