kesav prakash Ответов: 3

Нужен метод, который удаляет незаконные XML-символы из строки


Пожалуйста, скажите мне, как я могу удалить эти невидимые ненужные символы из xml-файла с помощью кода C#


Я хочу прочитать некоторые xml-файлы. когда я читал, я нашел некоторые нежелательные символы, такие как символы presenet в нем мне нужно удалить его, может ли любой 1 помочь мне

3 Ответов

Рейтинг:
25

techyamit7

internal static void RectifyXML()
        {
            //the path to the xml file
            string path = @"C:\CodeProject\test.xml";
            //create the xmldocument
            System.Xml.XmlDocument CXML = new System.Xml.XmlDocument();
            //load the xml into the XmlDocument
            CXML.Load(path);
            string correctedXMlString = Regex.Replace(CXML.InnerXml, @"[^\u0000-\u007F]", string.Empty);
            File.Delete(path);
            CXML.LoadXml(correctedXMlString);
            CXML.Save(path);
        }


Рейтинг:
1

AndreasRose

public static string RemoveInvalidXmlChars(string text)
{
   var validChars = text.Where(ch =>System.Xml.XmlConvert.IsXmlChar(ch)).ToArray();
   return new string(validChars);
}


Рейтинг:
1

Kornfeld Eliyahu Peter

var xmlPattern = "[^\u0001-\uD7FF\uE000-\uFFFD\ud800\udc00-\udbff\udfff]";

var newXml = xml.replace(new RegExp(xmlPattern , "g"), "");