Strips illegal Xml characters

   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:  }
posted @ 2011-11-22 17:05  AOT  阅读(246)  评论(0编辑  收藏  举报