我想Xml序列化來自不同來源的大量字符串。XmlSerializer的清理字符串
問題是如果字符串包含序列化程序無法處理的字符,則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;
}