【发布时间】:2016-03-08 09:05:34
【问题描述】:
我正在尝试对来自不同来源的大量字符串进行 Xml 序列化。
问题是如果字符串包含序列化程序无法处理的字符,XmlSerializer 会抛出异常。
当然,我已经完成了基本的字符串规范化,但一次又一次地发现“坏”字符。最新的3个是:'\a', '\0', '\u001f'
有没有办法从字符串中删除所有不受支持的字符或让 XmlSerializer 忽略它们?
我当前的代码是:
public static string CleanupStringForValidXMLExport(this string inputString)
{
if (!inputString.IsNullOrEmpty())
{
//InvalidXMLCharacters
return inputString.Remove(new[] { '\x1A', '\x1D', '\x0B', '\x01', '\x02', '\x03', '\x04', '\x17', '\x18', '\a', '\0', '\u001f' })
.RemoveMultipleWhiteSpaces()
.ReplaceUmlauts()
.ReplaceSpecialChars();
}
return inputString;
}
【问题讨论】:
标签: c# .net xml serialization xml-serialization