1: // strips illegal Xml characters:
2: static public String XmlEncode(String S)
3: {
4: if (S == null)
5: {
6: return null;
7: }
8: S = Regex.Replace(S, @"[^\u0009\u000A\u000D\u0020-\uD7FF\uE000-\uFFFD]", "", RegexOptions.Compiled);
9: return XmlEncodeAsIs(S);
10: }
11:
12: // leaves whatever data is there, and just XmlEncodes it:
13: static public String XmlEncodeAsIs(String S)
14: {
15: if (S == null)
16: {
17: return null;
18: }
19: StringBuilder sTmp = new StringBuilder();
20: using (StringWriter sw = new StringWriter())
21: {
22: using (XmlTextWriter xwr = new XmlTextWriter(sw))
23: {
24: xwr.WriteString(S);
25: sTmp.Append(sw.ToString());
26: xwr.Flush();
27: xwr.Close();
28: }
29: sw.Close();
30: }
31: return sTmp.ToString();
32: }