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); }}