/// <summary> /// In general you can't put named entities directly in XML PCDATA. /// Most entities must use numeric instead. /// </summary> /// <param name="attribute">If true, escape \r and \n to their numeric equivalents</param> public static string EscapeEntitiesForXml(string plaintext, bool attribute) { if (plaintext == null) { return(null); } StringBuilder output = new StringBuilder(); foreach (char c in plaintext) { switch (c) { case '"': case '&': case '<': case '>': output.Append(EntityEscaper.Char(c)); break; case '\r': case '\n': if (attribute) { AppendNumericEntity(c, output); } else { output.Append(c); } break; case '\'': if (attribute) { AppendNumericEntity(c, output); } else { output.Append(c); } break; case (char)160: AppendNumericEntity(c, output); break; default: output.Append(c); break; } } return(output.ToString()); }
public static string EscapeEntities(string plaintext) { if (plaintext == null) return null; StringBuilder output = new StringBuilder(); foreach (char c in plaintext) { output.Append(EntityEscaper.Char(c)); } return output.ToString(); }
public static string EscapeEntity(char c) { return(EntityEscaper.Char(c)); }