I am stuck in deleting invalid characters from an XML file. I found a RegEx template that should remove everything that is not available:
public static string CleanInvalidXmlChars(string text) {
And here is my code that reads data from SQL Server (well, snippet)
using (var cmd = new SqlCommand(Context.Command, connection)) { cmd.CommandTimeout = Context.CommandTimeout; using (var reader = cmd.ExecuteReader()) { StringBuilder xmlResults = new StringBuilder(string.Empty); while (reader.Read()) { xmlResults.Append(reader.GetString(0)); } if (!string.IsNullOrWhiteSpace(xmlResults.ToString())) { var doc = new XmlDocument(); XmlReader xmlReader = XmlReader.Create(new StringReader(xmlResults.ToString())); doc.Load(xmlReader); var nav = doc.CreateNavigator(); var objs = nav.Select("/index/type"); foreach (XPathNavigator obj in objs) { o.OnNext(obj); } } } }
I tried wrapping CleanInvalindXmlChars in different places:
while (reader.Read()) { xmlResults.Append(CleanInvalindXmlChars(reader.GetString(0))); }
Or in
XmlReader xmlReader = XmlReader.Create(new StringReader(CleanInvalindXmlChars(xmlResults.ToString())));
There is an x0B symbol in one cell that I am reading (I can replace it with SQL Server, but I want to be sure of that).
However, I always end up with a mistake
System.Xml.XmlException: '', the hexadecimal value 0x0B, is an invalid character. Line 115, position 33407.
Can someone help me solve this?
source share