diff --git a/SabreTools.Helper/Tools/Style.cs b/SabreTools.Helper/Tools/Style.cs
index e75becff..68667a48 100644
--- a/SabreTools.Helper/Tools/Style.cs
+++ b/SabreTools.Helper/Tools/Style.cs
@@ -4,6 +4,7 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
+using System.Web;
namespace SabreTools.Helper
{
@@ -440,6 +441,25 @@ namespace SabreTools.Helper
return new string(s.Where(c => !invalidPath.Contains(c)).ToArray());
}
+ ///
+ /// Convert all characters that are not considered XML-safe
+ ///
+ /// Input string to clean
+ /// Cleaned string
+ public static string ConvertXMLUnsafeCharacters(string s)
+ {
+ return new String(s.Select(c =>
+ (c == 0x9
+ || c == 0xA
+ || c == 0xD
+ || (c >= 0x20 && c <= 0xD77F)
+ || (c >= 0xE000 && c <= 0xFFFD)
+ || (c >= 0x10000 && c <= 0x10FFFF)
+ ? c
+ : HttpUtility.HtmlEncode(c)[0]))
+ .ToArray());
+ }
+
#endregion
#region Externally sourced methods